تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 7 اولاول 123456 ... آخرآخر
نمايش نتايج 11 به 20 از 65

نام تاپيک: برنامه نویسی ویژوال در لینوکس (Qt Programing)

  1. #11
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض درس چهارم

    آدرس درس قبلی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    آدرس درس بعدی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    پاسخ گویی به رویداد ها توسط Slot ها و Signal ها
    دکمه هم مانند برچسب، یک Widget است. اما تفاوتی که با Lable دارد این است که، برنامه شما نیاز دارد بفهمد چه موقعی بر روی دکمه کلیک می شود. در زیر برنامه ای را مورد بررسی قرار می دهیم که با فشار دادن دکمه اجرای آن متوقف می شود.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    برای این که دکمه در مقابل کلیک ماوس پاسخگو باشد، لازم است در ازای کلیک کاربر، پیغام ویژه ای برای یک متد خاص بفرستد. در برنامه فوق آن متد، تابع quit می باشد. این عملیات در خط 11انجام شده است. پیغامی که در ازای کلیک کاربر ارسال می شود را سیگنال می گوییم و متدی که سیگنال را دریافت می کند اسلات نامیده می شود.
    در واقع در خط یازدهم برنامه، با استفاده از متد connect، که متعلق به شیئ QObject می باشد، سیگنال کلیک موشواره بر روی شیئ button را به اسلات quit که متعلق به شیئ app است متصل نموده ایم.
    اتصال بین سیگنال ها و اسلات ها از طریق متد connect ایجاد می شود. این متد دارای دو پارامتر است که پارامتر اول سیگنال و پارامتر دوم اسلات مورد نظر است.
    اگر قبل از این با سیستم های رویدادگرای دیگر کار کرده باشید حتماً با مفهوم callback function آشنایی دارید. Signal ها هم مانند callback function ها می باشند. با این تفاوت که signal ها type safe هستند.
    در مثال بعدی مشاهده خواهید کرد که سیگنال ها و اسلات ها چگونه اشیای مختلف را با هم هماهنگ می کنند. در این برنامه کاربر می تواند سن خود را از طریق یک Spin Box یا یک Slider وارد کند. این دو Widget به صورت خودکار با هم هماهنگ هستند. این هماهنگی از طریق اسلات ها و سیگنال ها به وجود می آید. به این ترتیب که در هر شیئ سیگنالی وجود دارد که به اسلات شیئ دیگر متصل است و روند تغییرات را به گوش آن شیئ می رساند.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    این برنامه شامل سه Widget می باشد. در خط هشتم hbox را به وجود آورده ایم. این شیئ Widget اصلی برنامه خواهد بود و با بستن آن برنامه به پایان خواهد رسید. همان طور که می بینید در خط 21 تابع setMainWidget را فراخوانی کرده ایم.
    در خطوط 12 و 13 نیز به ترتیب spinBox و slider را بوجود آورده ایم. همانطور که ملاحظه می کنید هر دوی این اشیاء را به عنوان فرزندان hbox ایجاد کرده ایم. به این ترتیب این اشیاء درون hbox قرار می گیرند. شیئ hbox این ویژگی را دارد که باعث می شود تمام اشیاء درون آن بطور خودکار به ترتیب کنار یکدیگر قرار گیرند. بنابراین نیازی به تعیین دقیق موقعیت و اندازه اشیاء فرزند نیست. البته این کلاس در Qt3 وجود دارد و در نسخه چهارم باید از کلاس Q3HBox استفاده نمایید. در خط 11 متد setSpacing باعث می شود هر شیئی که درون hbox قرار می گیرد با فاصله 6 پیکسل نسبت به شیئ قبلی قرار بگیرد. متد setMargin هم یک حاشیه 6 پیکسلی برای شیئ hbox در نظر می گیرد.
    متد setRange در خطوط 14 و 15 محدوده معتبر برای spibBox و slider را، اعداد بین 0 تا 150 قرار می دهد.
    حال موقع آن است که اتصال بین دو شیئ را برقرار کنیم. این کار را طبق معمول با فراخوانی متد connect انجام می دهیم.
    در خط 21 spinBox را مقدار دهی اولیه کرده ایم. به محض اجرای برنامه مقدار spinBox تغییر می کند و این باعث می شود سیگنال valueChanged فعال شود. بنابر این اسلات setValue مربوط به شیئ slider آن را دریافت می کند و مقدار slider نیز بروز رسانی می شود.
    در خط 22 نیز متد show از شیئ hbox را فراخوانی کرده ایم. این متد باعث می شود شیئ hbox و تمام فرزندان آن بر روی صفحه نمایش داده شوند.
    فایل زیر را برای نسخه چهارم Qt استفاده کنید. در این فایل تعدادی از توابع و کلاس هایی که تنها در Qt3 قابل استفاده بوده اند حذف شده اند:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by a.toraby; 11-08-2007 at 11:17.

  2. 2 کاربر از a.toraby بخاطر این مطلب مفید تشکر کرده اند


  3. #12
    داره خودمونی میشه saeid_azad's Avatar
    تاريخ عضويت
    Dec 2005
    پست ها
    39

    پيش فرض

    اول بگم كارتون خيلي جالبه ولي فكر نمي كنيد كه يكم نسبت به لينوكس داريد كم لطفي مي كنيد اميدوارم در ادامه به لينوكس بيشتر توجه بشه
    ضمنا من چند تا سوال داشتم كه ممنون مي شم اگه جواب بديد
    1-اول راجع به qt و دات نت مي شه يه توضيحي بديد من كه لينك مستقيم براي دانلودش گير نياوردم ولي توي emole پيداش كردم
    البته با سايزهاي متفاوت از 80 تا 136 مگ مي خواستم بدونم اولا لينك دانلود مستقيم ازش سراغ نداريد ثانيا كدومشو بايد دانلود كنم ثالثا مراحل كامپايل برنامه توي اون بصورت متني يا ويژوال
    2-وقتي يه برنامه رو كامپايل مي كنم (حتي نمونه هاي خودش) موقع اجراي فايل اين خطا رو مي ده mingwm10.dll was not found ولي وقتي از روي منوي assistant اونارو اجرا مي كنم راحت اجرا مي شن چرا
    3-اين designer اش به چه درد مي خوره وقتي باهاش فرم رو مي سازيم چطوري بايد با كدهامون مرتبطش كنيم
    اميد وارم كه كارتون رو ادامه بديد

  4. #13
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    اول بگم كارتون خيلي جالبه ولي فكر نمي كنيد كه يكم نسبت به لينوكس داريد كم لطفي مي كنيد اميدوارم در ادامه به لينوكس بيشتر توجه بشه
    ضمنا من چند تا سوال داشتم كه ممنون مي شم اگه جواب بديد
    1-اول راجع به qt و دات نت مي شه يه توضيحي بديد من كه لينك مستقيم براي دانلودش گير نياوردم ولي توي emole پيداش كردم
    البته با سايزهاي متفاوت از 80 تا 136 مگ مي خواستم بدونم اولا لينك دانلود مستقيم ازش سراغ نداريد ثانيا كدومشو بايد دانلود كنم ثالثا مراحل كامپايل برنامه توي اون بصورت متني يا ويژوال
    2-وقتي يه برنامه رو كامپايل مي كنم (حتي نمونه هاي خودش) موقع اجراي فايل اين خطا رو مي ده mingwm10.dll was not found ولي وقتي از روي منوي assistant اونارو اجرا مي كنم راحت اجرا مي شن چرا
    3-اين designer اش به چه درد مي خوره وقتي باهاش فرم رو مي سازيم چطوري بايد با كدهامون مرتبطش كنيم
    اميد وارم كه كارتون رو ادامه بديد
    سلام
    تعجب می کنم. این جا در مرود برنامه نویسی در لینوکس داره آموزش داده می شه. اون وقت شما چه جوریه که می گید کم لطفی می شه. اگه منظورتون نحوه نصب و پیکربندی Qt در لینوکس بود که توضیخ ندادم. دلیل داشت. اون هم این که توزیع های لینوکس بسیار متنوع هستند و نصب Qt هم در هر کدوم از اون ها مهارت های خاص خودشو می طلبه. حالا گیریم که من نصبشو تو SUSE توضیح دادم. خیلی کمکی نمی کنه و آمزش عمومی نمیشه.
    با این حال سعی می کنم درس دوم رو update کنم. و نصب در لینوکس رو هم بهش اضافه کنم.

    در مورد سوال اولتون باید بگم که یک پروژه ای وجود داره به اسم Visual Studio Integration . هدف این پروژه ایجاد یک plugin برای VS هست. بنابراین برنامه نویس می تونه از کلاس های Qt و همچنین از Qtdesigner درون Visual studio.net به صورت ساختار یافته ای استفاده کنه. در واقع شما با Qt برنامه نویسی می کنید. اما VS رو به عنوان یک IDE مورد استفاده قرار می دید. یه پروزه دیگه ای مشابه به همین در مورد eclipse وجود داره. به این ترتیب که برنامه نویسان لینوکسی هم مس تونن از قابلیت های Eclipse برای کدنویسی Qt استفاده کنن. همه این پروژه ها برای اینه که روند توسعه یک application سریع تر انجام بشه. این پلاگین ها باعث می شه که برنامه نویس مجبور نباشه syntax همه دستورات رو حفظ باشه و مزایایی از این قبیل. حالا که شما به این زودی این بحث رو مطرح کردی شاید این مطالب رو زودتر آپلود کنم. اما خودم قصد داشتم یه کم کدنویسی کار کنیم (کدها رو توی notepad بنویسیم) بعد این چیزا رو بگم. این کار فایدش اینه که شما در یادگیری کدها و دستورات دقت بیشتری می کنید.

    در مورد سوال های بعدی هم لازمه بگم که، معلومه مطالب رو به خوبی نخوندین وگرنه این سوال ها براتون پیش نمیومد اون error هم که موقع کامپایل مشاهده می شه به خاطر اینه که حتماً MinGW رو نصب نکردید.

    در مورد Qtdesigner هم توضیح داده خواهد شد. جزو سرفصل های درسمون هستش

  5. #14
    داره خودمونی میشه saeid_azad's Avatar
    تاريخ عضويت
    Dec 2005
    پست ها
    39

    پيش فرض

    خوب اگه نحوه نصب رو توي بعضي توزيعها شرح بديد بهتره شايد بقيه هم دست بكار بشند و هركسي نحوه نصب رو توي توزيع دلخواهش شرح بده هرچند اونقدر ها هم نصب متفاوتي نداره
    خوب براي شروع من خودم نصبشو توي opendevelop توضيح ميدم
    مرحله اول ابتدا سي دي را داخل سي دي رام گذاشته و با اون سيتم رو راه اندازي مي كنيم
    مرحله دومي هم وجود نداره چون qt بطور پيش فرض نصبه(توضيح از اين كاملتر)

    در مورد qt و vs منظورم اين بود كه من بايد كدوم پكيج رو توي emole دانلود كنم (حجمش چقدره) و اگه لينك مستقيم ازش بديد كه ديگه عاليه
    در مورد خطا هم بايد بگم كه من mingw رو نصب كردم اصلا تا نصب نشه كه qt نصب نمي شه و ضمننا گفتم كه فايلهاي كامپايل شده از توي qt examples and demos اجرا ميشند ولي مستقيما خير و از نبود اون dll خبر مي دهند
    البته mingwm10.dll وجود داره ومن حتي توي شاخه ويندوز هم كپيش كردم ولي كماكان مشكل باقي است
    ممنون مي شم اگه كمكم كنيد

  6. #15
    اگه نباشه جاش خالی می مونه Cris_Y's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    246

    پيش فرض

    salam
    ye modat kam posht computer boodam dar natije dirooz taze shorou kardam
    az hamoon barnameye aval sare dastoore qmake error mide, dorost bad az define ha!
    midoonin moshkel chi mitoone bashe?

  7. #16
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    salam
    ye modat kam posht computer boodam dar natije dirooz taze shorou kardam
    az hamoon barnameye aval sare dastoore qmake error mide, dorost bad az define ha!
    midoonin moshkel chi mitoone bashe?
    سلام
    دقیقاً متوجه نشدم کجا رو می گی. می شه منظورتو بهتر برسونی؟ آخه qmake که برای کامپایل نیست. qmake پروژه رو ایجاد می کنه.

  8. #17
    اگه نباشه جاش خالی می مونه Cris_Y's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    246

    پيش فرض

    salam
    shayad man bad motevajeh shodam!oon kari ro ke gofte boodin kardam vali error mide ye chizi mesle compiler error
    mishe bishter tozih bedin
    merci

  9. #18
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    salam
    shayad man bad motevajeh shodam!oon kari ro ke gofte boodin kardam vali error mide ye chizi mesle compiler error
    mishe bishter tozih bedin
    merci
    دوست خوبم شما اگه می شه اون error ای که دریافت می کنید رو یه عکسی ازش بگیرید و این جا بزارید تا من براتون توضیح بدم

  10. #19
    اگه نباشه جاش خالی می مونه Cris_Y's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    246

    پيش فرض

    salam
    oon moshkel hal shod
    hala ye moshkele jadid
    sare compile error mide. qt im 4.3.0 ast
    source code:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    va matne shamele error:

    C:\Qt\4.3.0>make
    mingw32-make -f MakeFile.Debug all
    mingw32-make[1]: Entering directory `C:/Qt/4.3.0'
    g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
    DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"inclu
    de\QtCore" -I"include\QtCore" -I"include\QtGui" -I"include\QtGui" -I"include" -I
    "include\ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"c:\Program Files\Microsoft
    Visual Studio\DF98\IMSL\INCLUDE" -I"c:\Program Files\Microsoft Visual Studio\DF9
    8\INCLUDE" -I"c:\Program Files\Microsoft Visual Studio\VC98\INCLUDE" -I"mkspecs\
    win32-g++" -o tmp\obj\debug_shared\hello.o hello.cpp
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
    oc -mthreads -Wl -Wl,-subsystem,windows -o "debug\helloqt.exe" tmp\obj\debug_sha
    red\hello.o -L"c:\Qt\4.3.0\lib" -L"c:\Program Files\Microsoft Visual Studio\DF9
    8\IMSL\LIB" -L"c:\Program Files\Microsoft Visual Studio\DF98\LIB" -L"c:\Program
    Files\Microsoft Visual Studio\VC98\LIB" -L"c:\Qt\4.3.0\lib" -lmingw32 -lqtmaind
    -lQtGuid4 -lQtCored4
    C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\ mingw32\bin\ld.exe: cannot fin
    d -lqtmaind
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [debug\helloqt.exe] Error 1
    mingw32-make[1]: Leaving directory `C:/Qt/4.3.0'
    mingw32-make: *** [debug-all] Error 2

    merci!

  11. #20
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    لطفاً درس دوم رو یه بار دیگه بخونید:
    چرا دقت نمی کنی عزیز

    در ضمن دو بار هم از روش بنویس.ok؟؟
    مخصوصاً ای خطش رو حتماً خوب بخون:

    توصیه می شود نسخه 5 یا بالاتر این کامپایلر را دانلود نمایید. چون نسخه های قدیمی تر در کامپایل برنامه های Qt دچار مشکل می شوند

    این هم آدرس درس دوم:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    به خدا اگه پله به پله و با حوصله و با دقت جلو بری خیلی آسون به نتیجه می رسی. عزیز دل برادر، باید MinGW5.0.2 رو دانلود کنی. اگه خواستی هم می تونی آدرس بدی برات cd بفرستم. چه کنیم دیگه ما خراب رفیقیم.
    البته پولشو ازت می گیرم
    Last edited by a.toraby; 03-08-2007 at 17:53.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •