منوی برگه ها
TwitterRssFacebook
منوی دسته ها

نوشته شده توسط در Aug 3, 2013 در بخش برنامه‌/اسکریپت نویسی متن‌باز | ۳۰ دیدگاه

آموزش برنامه‌نویسی ++C در Qt (مقدمه)

مقدمه

++C که به عنوان زبانی استاندارد و قدرتمند شناخته می‌شود در سال ۱۹۸۹ میلادی ایجاد شد، این زبان که حالا به یک زبان بالغ و کامل تبدیل شده است در اکثر برنامه‌های سیستمی مورد استفاده قرار می‌گیرد و  از آن در سطح بالایی استفاده می‌شود. Toolkit های زیادی برای استفاده از آن به وجود آمده‌اند که یکی از این تول‌کیت‌ها Qt است. این تول‌کیت دارای IDE مختص به خود با نام Qt Creator بوده و برای برنامه نویسی با Qt بسیار مناسب و کاربردی است.  از این زبان به راحتی می‌توان در NetBeans و Eclipse استفاده کرد، البته برای استفاده از این Toolkit در Eclipse باید از افزونه‌ای که مربوط به این Toolkit است استفاده نمود.

 

++C یک زبان‌ شی گرا و یکی از رایج‌ترین زبان‌های برنامه‌نویسی به شمار می‌رود. این زبان از زبان C که یک زبان ساختار یافته است، انشعاب یافته است. با وجود این که C++ خود زبان قوی و قدرتمندی به شمار می‌آید اما نسبت به جاوا و دیگر زبان‌های دیگر درای کاستی هایی است و به راحتی نمی توان با آن برنامه‌های بصری ایجاد کرد به خاطر همین موضوع Toolkitهایی پیدید آمده‌اند که برای ساخت برنامه های بصری در ++C کتابخانه‌ها و کلاس‌های مورد نیاز را ایجاد نموده‌اند. همان طور که اشاره شد Qt یکی از این Toolkit ها است که از مزایایی چون Cross Platform بودن برخوردار است به طوری که برنامه‌ای که با Qt ایجاد شده است به راحتی قادر به اجرا در مک، ویندوز و لینوکس و دیگر سیستم عامل‌های موجود بوده و از ظاهر بومی این سیستم عامل‌ها نیز پیروی می‌کند.

از این جهت که Qt یکی از Toolkit‌های مطرح مورد استفاده در برنامه‌های گنو/لینوکس است بر آن شدیم که به آموزش این Toolkit بپردازیم تا نقش کاربران در ایجاد و یا پیشبرد برنامه‌های گنو/لینوکسی افزایش یابد و نهایتا منجر به افزایش کیفیت برنامه های موجود شود. از آنجا که اکثر برنامه‌های نوشته شده برای Qt برنامه‌های متن‌باز می‌باشند، می توانید با دانلود و مطالعه سورس کد این برنامه‌ها، سطح دانش خود را بالا ببرید.

شروع به کار با Qt، یک مثال ساده

اولین برنامه‌ای که در این قسمت آموزش داده خواهد شد، یک پنجره ی ساده است که دارای کنترل خاصی نمی‌باشد و برای آشنایی بیشتر شما با زبان Qt به کار می ‌رود. بعد از این مثال شما قادر خواهید بود در Qt یک فرم ساده طراحی کنید.

فایلی با نام main.cpp را ایجاد و در مکان مناسبی ذخیره نمایید. سپس مقادیر زیر را درون آن کپی کنید.

 

سپس برای تست و اجرای این برنامه به جایی که فایل را ذخیره کرده‌اید رفته و دستور زیر را جهت ساخت فایل پروژه و کامپایل برنامه در ترمینال وارد کنید.

در سطر اول، برنامه را به صورت پروژه در آورده و سپس در دو دستور بعد (QMake و Make) آن را کامپایل می‌کنیم.

بعد از دستورات فوق فای‌لهایی همانند شکل در پوشه‌ی پروژه ایجاد می گردد که می توانید با کلیک برروی فایل اجرایی ساخته شده آن را اجرا کنید.

ههچنین فایل makefile و ProjectName.pro نیز در پوشه پروژه ایجاد می گردند که می توانید از آنها برای باز کردن پروژه در IDE مورد نظر خود استفاده نمایید.

تا اینجا آشنایی مختصری با نوشتن و همچنین کامپایل یک برنامه‌ی ساده‌ی C++/Qt پیدا کرده‌اید. در قسمت بعدی وارد مباحث بیشتری در این مورد خواهیم شد. بعد از اتمام این آموزش شما قادر خواهید بود برنامه‌های مورد نظر خود را توسط C++/Qt ایجاد نمایید.

آموزش برنامه‌نویسی ++C در Qt (مقدمه) ۵.۰۰/۵ (۱۰۰.۰۰%) ۳ امتیاز

۳۰ دیدگاه

  1. عالیه،ادامه بدید لطفا.

    • چشم حتمی ادامه پیدا می کنه.

  2. آقا ممنون ادامه بدین، بقیشه دلم میخواد ببینم

  3. خوبه ادامه بدید لطفا

  4. سلام
    خیلی عالی بود .
    امیدوارم ادامه پیدا کنه.

  5. کاشکی در مورد نحوه نصب و راه اندازی compiler و IDE هم مطلب می نوشتید.
    می تونید توی http://www.javabyab.com هم پرسش و پاسخ هاشو مطرح کنید.

  6. Qt با این حساب چرخه اصلی برنامه رو دست خودش می گیره به صورت کامل . ایا راهی هست که کاربر به چرخه اصلی برنامه راه پیدا کنه؟

  7. دو تا فرمان اول رو که می‌زنم هیچ اتفاقی نمی‌افته. ولی فرمان make رو که می‌زنم این خطا رو می‌ده:

    g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o main.o main.cpp
    main.cpp:17:24: fatal error: QApplication: No such file or directory
    compilation terminated.
    make: *** [main.o] Error 1

    چه بسته‌ای رو باید نصب کنم؟

    • qt رو نصب کردی عزیز؟
      روی سیستمت qt نداری

      با توجه به توزیعی که داری یکی از بسته های qt4 یا qt5 رو نصب کن (البته ممکنه اسمش تو سیستم شما متفاوت باشه)

      • بستهٔ qt رو که قاعدتاً باید داشته باشم، چون برنامه‌های بر پایهٔ qt دارم (TeXMaker مثلاً).
        ولی انگار بستهٔ qt-dev یا همچین چیزی باید باشه. من اوبونتوی ۱۳٫۰۴ دارم. می‌شه بگی لطفاً چه بسته‌ای؟

        • توی ابونتوی ۱۳.۴ کیوت ۵ به مخازن اضافه شده.
          شما کافیه که qt-dev رو نصب کنید. البته هنگامی که میخواهید ide رو هم نصب کنید ف کر کنم به صورت پیشفرض به شما پیشنهاد می‌کنه که فایل های dev رو هم نصب کنید.

        • amp@6430u:~$ uname -r
          3.8.0-29-generic
          amp@6430u:~$ sudo apt-get install qt-dev
          Reading package lists… Done
          Building dependency tree
          Reading state information… Done
          E: Unable to locate package qt-dev

    • @آروانت
      اون سایت ها کامل بشن خوبه ولی اینکه اینجا هم آموزش داده بشه خوب تره! چون از همین طریق هم اون سایتها جلوه پیدا می کنند و همین اینکه کاربرهای اینجا با موضوع آشنا میشن و ممکنه علاقه مند هم بشن.
      @احسان
      برای نوشتن C++ از کاراکتر RTL استفاده کن.
      یعنی اول C++ رو تایپ کن پشت سرش بلافاصله در حالتی که لی‌اوت کیبورد فارسی باشه: آلت+پرانتزبسته
      C++‎

  8. این ادامه پیدا میکنه دیگه ؟ یا مثل همیشه سر کاریم ؟ قطعاً سر کاریم . تازه لینوکس ریویو هم که جدیداً آخر فعالیته . سالى یه پست شاید .

    • حالا می بینی ادامه پیدا می کنه یا نه!!!!

  9. بعد از دستور سوم این خطا رو میده.
    g++ -Wl,-O1 -o hamid -L/usr/lib -lQtGui -lQtCore -lpthread
    /usr/bin/ld: cannot find -lQtGui
    collect2: ld returned 1 exit status
    make: *** [hamid] Error 1
    چیکار باید بکنم؟

  10. الان فقط استفاده از Qt رو آموزش میدین؟ یعنی من که ++C بلد نیستم به دردم نمیخوره این آموزش ها؟

  11. با سلام,کاری که شروع کردید بسیار عالیه و امیدوارم با قدرت ادامه پیدا کنه.فقط اگه میشه درباره برنامه هایی که مینویسید توضیح بیشتر و کاملتری بدید و وارد جزئیات هر برنامه بشید که مبتدیها هم یه چیزی سر در بیارن!!

  12. با درود و تشکر بابت شروع این سری از آموزش‌ها
    من این کد رو کپی/پیست کردم و وقتی به دستور سوم (make) می‌رسم، با این خطا مواجه میشم:

    g++ -Wl,-O1 -o 1 -lQt5Gui -L/usr/lib/i386-linux-gnu -lQt5Core -lGL -lpthread
    /usr/lib/gcc/i686-linux-gnu/4.7/../../../i386-linux-gnu/crt1.o: In function _start':
    (.text+0x18): undefined reference to
    main’
    collect2: error: ld returned 1 exit status
    make: *** [1] Error 1

    ممنون میشم اگه راهنمایی کنین که کجای کارم اشتباه کردم؟

  13. خدا خیرت بده
    دو سه سالی هست منتظر همچین مطلبی بودم.

  14. سلام. همیشه آموزشهای مفیدی را روی وب پیدا کرده ام، امّا حیف که اگر بخواهم از روی مانیتور آنها را بخوانم، با توجّه به اینکه نسبتا طولانی هستند، نتونستم همشون رو بخونم. بنابراین زحمت اون نویسنده که هدفش اقزایش دانش بینندگان سایتش است، بر باد رفته است. ضمن اینکه اگر هدف نویسنده نه افزایش دانش بازدید کنندگان، بلکه افزایش تعداد بازید کنندگان است، باز هم به دلیل اینکه بیشتر بازدید کنندگان از خواندن ادامه مقاله صرف نظر میکنند، این هدف نیز تأمین نمیشود.
    اگر لطف مینمودید PDF این مقالات را میگذاشتید، هم یادگاری از شما بر روی هارد کامپیوتر شما باقی میماند، هم میتوانستیم با استفاده از کتابخوان الکترونیکی (مشهور به Ebook Reader) آن را بخوانیم و طبق گفته امام علی که میفرماید هر کس کلمه ای به من بیاموزد، تا همیشه مدیون او خواهم بود، مدیون نویسنده محترم باشیم و دعای خیر بنماییم.

    • هر وقت خواستید صفحه‌ای رو در وب چاپ کنید نشونی صفحه رو در این سایت وارد کنید:
      https://www.printfriendly.com/
      و این سایت یک پی‌دی‌اف تمیز بهتون می‌ده.

      • این سایتها و سرویسها معمولا با همه سایتها، بخصوص زبان فارسی به خوبی کار نمیکنند. چه کاریه وقتی خود سایت میتونه PDF بزاره؟!

  15. البته این سایتی که معرفی کردم با فارسی خوب کار می‌کنه. برای راه افتادن کار خودتون گفتم. و در ضمن پیشنهاد شما به مدیران این سایت رو قبول دارم و حمایتش می‌کنم.

  16. برای نسب Qt در اوبونتو باید از دستور زیر استفاده کرد:
    sudo apt-get install qt-sdk

  17. بعد از کامپایل دو فایل cpp.pro و Makefile ایجاد میشه.
    فایل اجرایی ساخته نمیشه
    راه نمایی لطفا مرسی

      • moteasefaneh javabamo too cm aye bala peyda nakardam

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

مرا از دیدگاه‌های پس از این، به وسیله‌ی ایمیل آگاه کن. شما همچنین می‌توانید بدون گذاشتن دیدگاه مشترک شوید.