مقدمه
++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 را ایجاد و در مکان مناسبی ذخیره نمایید. سپس مقادیر زیر را درون آن کپی کنید.
#include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(250, 150); window.setWindowTitle("Simple example"); window.show(); return app.exec(); }
سپس برای تست و اجرای این برنامه به جایی که فایل را ذخیره کردهاید رفته و دستور زیر را جهت ساخت فایل پروژه و کامپایل برنامه در ترمینال وارد کنید.
qmake -project main.cpp qmake make
در سطر اول، برنامه را به صورت پروژه در آورده و سپس در دو دستور بعد (QMake و Make) آن را کامپایل میکنیم.
بعد از دستورات فوق فایلهایی همانند شکل در پوشهی پروژه ایجاد می گردد که می توانید با کلیک برروی فایل اجرایی ساخته شده آن را اجرا کنید.
ههچنین فایل makefile و ProjectName.pro نیز در پوشه پروژه ایجاد می گردند که می توانید از آنها برای باز کردن پروژه در IDE مورد نظر خود استفاده نمایید.
تا اینجا آشنایی مختصری با نوشتن و همچنین کامپایل یک برنامهی سادهی C++/Qt پیدا کردهاید. در قسمت بعدی وارد مباحث بیشتری در این مورد خواهیم شد. بعد از اتمام این آموزش شما قادر خواهید بود برنامههای مورد نظر خود را توسط C++/Qt ایجاد نمایید.
26 دیدگاه برای این نوشته:
حسین:
۱۲ مرداد ۱۳۹۲
عالیه،ادامه بدید لطفا.مهران:
۱۲ مرداد ۱۳۹۲
عالی :) حتما ادامه بدینEhsan Tork:
۱۲ مرداد ۱۳۹۲
چشم حتمی ادامه پیدا می کنه.جعفر:
۱۳ مرداد ۱۳۹۲
آقا ممنون ادامه بدین، بقیشه دلم میخواد ببینمfariborz:
۱۳ مرداد ۱۳۹۲
خوبه ادامه بدید لطفاحمید:
۱۳ مرداد ۱۳۹۲
سلام
خیلی عالی بود .
امیدوارم ادامه پیدا کنه.Saeed Zarinfam:
۱۳ مرداد ۱۳۹۲
کاشکی در مورد نحوه نصب و راه اندازی compiler و IDE هم مطلب می نوشتید.
می تونید توی www.javabyab.com هم پرسش و پاسخ هاشو مطرح کنید.ali kiaee:
۱۳ مرداد ۱۳۹۲
Qt با این حساب چرخه اصلی برنامه رو دست خودش می گیره به صورت کامل . ایا راهی هست که کاربر به چرخه اصلی برنامه راه پیدا کنه؟امیرمسعود:
۱۳ مرداد ۱۳۹۲
دو تا فرمان اول رو که میزنم هیچ اتفاقی نمیافته. ولی فرمان 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چه بستهای رو باید نصب کنم؟
Arvant:
۱۳ مرداد ۱۳۹۲
دستت درد نکنه ولی اموزش هست اینا کامل تر شن بهترن
http://qt-project.ir/
http://qtips.irایندر:
۱۴ مرداد ۱۳۹۲
@آروانت
اون سایت ها کامل بشن خوبه ولی اینکه اینجا هم آموزش داده بشه خوب تره! چون از همین طریق هم اون سایتها جلوه پیدا می کنند و همین اینکه کاربرهای اینجا با موضوع آشنا میشن و ممکنه علاقه مند هم بشن.
@احسان
برای نوشتن C++ از کاراکتر RTL استفاده کن.
یعنی اول C++ رو تایپ کن پشت سرش بلافاصله در حالتی که لیاوت کیبورد فارسی باشه: آلت+پرانتزبسته
C++nixmd:
۱۵ مرداد ۱۳۹۲
qt رو نصب کردی عزیز؟
روی سیستمت qt نداریبا توجه به توزیعی که داری یکی از بسته های qt4 یا qt5 رو نصب کن (البته ممکنه اسمش تو سیستم شما متفاوت باشه)
matin:
۱۵ مرداد ۱۳۹۲
این ادامه پیدا میکنه دیگه ؟ یا مثل همیشه سر کاریم ؟ قطعاً سر کاریم . تازه لینوکس ریویو هم که جدیداً آخر فعالیته . سالى یه پست شاید .امیرمسعود:
۱۶ مرداد ۱۳۹۲
بستهٔ qt رو که قاعدتاً باید داشته باشم، چون برنامههای بر پایهٔ qt دارم (TeXMaker مثلاً).
ولی انگار بستهٔ qt-dev یا همچین چیزی باید باشه. من اوبونتوی ۱۳٫۰۴ دارم. میشه بگی لطفاً چه بستهای؟Ehsan Tork:
۱۶ مرداد ۱۳۹۲
حالا می بینی ادامه پیدا می کنه یا نه!!!!حمید:
۱۷ مرداد ۱۳۹۲
بعد از دستور سوم این خطا رو میده.
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
چیکار باید بکنم؟zobilla:
۱۹ مرداد ۱۳۹۲
الان فقط استفاده از Qt رو آموزش میدین؟ یعنی من که ++C بلد نیستم به دردم نمیخوره این آموزش ها؟moh3en:
۲۰ مرداد ۱۳۹۲
با سلام,کاری که شروع کردید بسیار عالیه و امیدوارم با قدرت ادامه پیدا کنه.فقط اگه میشه درباره برنامه هایی که مینویسید توضیح بیشتر و کاملتری بدید و وارد جزئیات هر برنامه بشید که مبتدیها هم یه چیزی سر در بیارن!!منصور:
۲۷ مرداد ۱۳۹۲
با درود و تشکر بابت شروع این سری از آموزشها
من این کد رو کپی/پیست کردم و وقتی به دستور سوم (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ممنون میشم اگه راهنمایی کنین که کجای کارم اشتباه کردم؟
محسن:
۳۰ مرداد ۱۳۹۲
خدا خیرت بده
دو سه سالی هست منتظر همچین مطلبی بودم.حجت:
۰۲ شهریور ۱۳۹۲
توی ابونتوی ۱۳.۴ کیوت ۵ به مخازن اضافه شده.
شما کافیه که 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امیر:
۲۰ شهریور ۱۳۹۲
سلام. همیشه آموزشهای مفیدی را روی وب پیدا کرده ام، امّا حیف که اگر بخواهم از روی مانیتور آنها را بخوانم، با توجّه به اینکه نسبتا طولانی هستند، نتونستم همشون رو بخونم. بنابراین زحمت اون نویسنده که هدفش اقزایش دانش بینندگان سایتش است، بر باد رفته است. ضمن اینکه اگر هدف نویسنده نه افزایش دانش بازدید کنندگان، بلکه افزایش تعداد بازید کنندگان است، باز هم به دلیل اینکه بیشتر بازدید کنندگان از خواندن ادامه مقاله صرف نظر میکنند، این هدف نیز تأمین نمیشود.
اگر لطف مینمودید PDF این مقالات را میگذاشتید، هم یادگاری از شما بر روی هارد کامپیوتر شما باقی میماند، هم میتوانستیم با استفاده از کتابخوان الکترونیکی (مشهور به Ebook Reader) آن را بخوانیم و طبق گفته امام علی که میفرماید هر کس کلمه ای به من بیاموزد، تا همیشه مدیون او خواهم بود، مدیون نویسنده محترم باشیم و دعای خیر بنماییم.امیرمسعود:
۲۰ شهریور ۱۳۹۲
هر وقت خواستید صفحهای رو در وب چاپ کنید نشونی صفحه رو در این سایت وارد کنید:
https://www.printfriendly.com/
و این سایت یک پیدیاف تمیز بهتون میده.امیر:
۲۰ شهریور ۱۳۹۲
این سایتها و سرویسها معمولا با همه سایتها، بخصوص زبان فارسی به خوبی کار نمیکنند. چه کاریه وقتی خود سایت میتونه PDF بزاره؟!امیرمسعود:
۲۰ شهریور ۱۳۹۲
البته این سایتی که معرفی کردم با فارسی خوب کار میکنه. برای راه افتادن کار خودتون گفتم. و در ضمن پیشنهاد شما به مدیران این سایت رو قبول دارم و حمایتش میکنم.