مقدمه: زبان سی++ را میتوان یکی از زبانهای رایج دانست که با وجود معرفی و عرضه زبانهای برنامه نویسی جدید، هنوز هم طرفداران و منتقدان خاص خود را دارد. عدهای از منتقدان آن بر شیء گرایی آن به عنوان یک نقص مینگرند. شاید تعجب کنید، اما عدهای از کاربران مانند لینوس تروالدز و حتی موسس زبان سی دنیس ریچی نیز نسبت به مفهوم شیء گرایی نظر مساعد نداشتنه و ندارند. با این حال طرفداران این زبان نیز کم نیستند. چیزی که عدهای از آن تنفردارند دقیقا باعث خشنود شدن عده زیادی گشته است. همین شیء گرایی است که عدهای معتقدند؛ باعث قدرت روزافزون این زبان شده است.
سی++ زبانی است مبتنی بر زبان مادرش یعنی سی، که در سال ۱۹۷۹ در آزمایشگاه بل توسط یک دانشمند دانمارکی ایجاد شد، این زبان سطح بالا قادر است همانند زبان سی با ماشین نیز تعامل داشته باشد. به این شکل که میتوان در آن مستقیما همانند زبان مادرش سی،دستورات سطح پایین و حتی اسمبلی را اجرا کرد. شیءگرایی در این زبان شامل پشتیبانی از کلاس و مفاهیم دیگر آن میشود که در برابر زبانهای دیگر شیءگرایی این مزیت را دارد که میتوان بدون استفاده از هیچ یک از مفاهیم شیءگرایی، برنامهها را به سبک زبان سی نوشت.
از ویژگیهای زبان سی++ میتوان به کتابخانهها و سرآیندهای مختلفی اشاره داشت که توسط شرکتها و افراد مختلفی آماده شده اند. به عنوان مثال در ویندوز به همراه ابزارها و کتابخانههای داتنت و ویژوالاستودیو، ویژوال سی++ عرضه شدهاست که بهراحتی به کاربران اجازه نوشتن برنامههای گرافیکی تحت سیستمعامل ویندوز را خواهد داد. در سیستمعامل گنو/لینوکس نیز میتوان با استفاده از کتابخانهها و سرآیندهای متنبازی چون جیتیکی+ «+GTK» به برنامهنویسی به این زبان اقدام کرد. علاوه بر موارد مذکور، گزینهها و ابزار و کتابخانههای چندسکویی بسیار قدرتمندی نیز در دسترس هستند که کتابخانههایی متنباز و قدرتمند را در اختیار توسعهدهندگان قرار دادهاند. به عنوان مثال wxWidgets که یک کتابخانه چندسکویی است که در اکثر سیستمعاملها قابل استفاده است. در سیستمعامل گنو/لینوکس نیز با استفاده از کتابخانههای جیتیکی+ قادر به اجرا خواهد بود.
اما کتابخانه چندسکویی و قدرتمندی که در این آموزش به آن میپردازیم. کیوت یک مجموعه کتابخانه و سرآیند است که به زبان سی++ نوشتهشده است و در میزکار کیدیای به طور گسترده مورد استفاده واقع شدهاست. برخلاف دیگر موارد ذکر شده این مورد موارد متعددی را به زبان سی++ افزودهاست و حتی برخی امکانات و ویژگیهای جدید که در سی++ وجود نداشته یا به سختی قابل انجام بوده را به این زبان افزوده است. کیوت با دو مجوز منتشر می شود؛ یک مجوز آزاد و متنباز و دیگری مجوزی تجاری و برای فروش که ما در این آموزش کیوت متنباز / آزاد را بررسی خواهیم کرد. کیوت بههمراه یک ابزار طراحی ظاهر گرافیکی تحت اکسامال و یک محیط توسعه نرمافزار و چندین ابزار و کتابخانه غنی برای سی++ ارائه میگردد.
کیوت را میتوان با استفاده از مترجمهای «کامپایلرهای» مختلفی ترجمه کرد. کامپایلر بنیاد گنو، جیسیسی معمولا یکی از متداولترین گزینهها است. اما استفاده از کامپایلرهای دیگر مانند کامپایلر ویژوال استودیو و سیلنگ «CLang» نیز از گزینههای دیگر برای کامپایل کدهای نوشته شده کیوت بهشمار میروند. در آخر به تعریفی که در ویکیپدیا از کیوت داشته، نگاهی میاندازیم تا با این ابزار و کتابخانهها بیشتر آشنا شویم. بر اساس تعریف ویکیپدیا «کیوت (به انگلیسی: Qt) مجموعهای از کتابخانهها و سرآیندهای نوشتهشده به زبان سی++ است که به برنامهنویس امکان توسعه آسان نرمافزارهای کاربردی را میدهد. کیوت شامل چندین کلاس برای کار با واسط گرافیکی، چندرسانه، ابزارهای پایگاهداده، شبکه و … است. نرمافزارهای نوشته شده با ابزار کیوت قادرند تا با استفاده از یک کامپایلر زبان سیپلاسپلاس برای طیف وسیعی از سیستمعاملها از جمله گنو/لینوکس (نسخههای رومیزی و وسیلههای قابل حمل)، ویندوز، ویندوز CE، مکاواس و … همگردانی شوند. بدین ترتیب حمل نرمافزار نوشته شده بدون تغییر در متن کد نوشته شده امکانپذیر است. از کیوت در زبانهای برنامهنویسی متعددی مانند سی++ و جاوا و پایتون میتوان استفادهکرد.» (ویکیپدیا)
برای نوشتن کدهای کیوت لازم نیست از محیط توسعه کیوت استفاده کنیم. محیطها توسعه نرمافزار نتبینز شرکت اوراکل، ویژوال استودیو شرکت مایکروسافت و اکلیپس نیز از کیوت پشتیبانی میکنند. در برخی از این محیطها باید برخی افزودهها نصب شود با این حال نوشتن کدهای کیوت در آنان قابل انجام است. اما در این آموزش ما در برخی مواقع اشاره میکنیم که از کدام یک استفاده شدهاست و در اوایل کار نیز به هیچ یک از این محیط شاید نیازی نداشته باشیم و با یک ویرایشگر متن و خطفرمان بتوانیم تمامی کدهای نوشته شده را کامپایل نماییم. با وجود این بعد از چندین جلسه به معرفی یک محیط توسعه پرداخته و تا آخر از آن محیط استفاده خواهیم کرد. هر چند شما مختار هستید که از هر یک از محیطهایی که در آن راحت هستید استفاده کنید.
برای آنکه کیوت را در سیستمعامل خود نصب کنید باید به پیوند زیر مراجعه کنید و در لیست موجود گزینه دلخواه و متناسب با سیستمعامل خود را انتخاب کنید. برای سیستمعامل گنو/لینوکس دو گزینه پیشروی شما قرار دارد. گزینه اول این است که با استفاده از مخازن توزیع خود اقدام به نصب کیوت کنید، گزینه بعدی آن است که جدیدترین ویرایش کیوت را از پایگاه اینترنتی دیجیا دریافت نموده و آن را با استفاده از نصاب خود کیوت نصب کنید. در این آموزش توصیه میکنیم به دلیل استفاده ما از جدیدترین ویرایش کیوت و استفاده از برخی کتابخانهها و ابزارهای خاص در ویرایشهای جدید، ویرایش جدید کیوت را از پایگاه اینترنتی دیجیا دریافت کرده و در توزیع خود نصب کنید؛ مگر آنکه از توزیعی با انتشار غلطان همانند آرچلینوکس استفاده کنید، که ویرایش کیوت در این توزیعها ۵٫۵ به بالا باشد.
در این مطالب آموزشی که در هر قسمت شامل موارد متعددی است قصد داریم تا به موارد بسیار بیشتری از کیوت برسیم و تمامی آنان را به خوبی آموزش دهیم. به عنوان نمونه اگر با ما همراه باشید در آخر کار قادر خواهید بود یک برنامه پخشکننده موسیقی سفارشی و یا حتی برنامه مدیریت مالی شخصی خود را ایجاد کنید. پس صرفا در این آموزش نکات کلی و ابتدایی و یا برخی کدهای ساده، آموزش داده نخواهد شد و به موارد کاربردی مانند اتصال به شبکه، پخش موسیقی، ضبط فیلم، پردازش گرافیکی، رسم گرافیک و دیگر موارد کاربردی نیز خواهیم رسید.
اگر پیش از این از زبان سی++ و یا زبان شیءگرای دیگری مانند جاوا استفاده کردهاید؛ در این مطالب با مشکل خاصی مواجه نخواهید شد. اما اگر تنها به زبان سی و یا زبانهای غیر شیءگرا مانند سی برنامهنویسی کردهاید این آموزش کمی گیجکننده خواهد بود. بنابراین توصیه میشود در ابتدا کمی با مفاهیم شیءگرایی آشنا شده سپس به مطالعه این آموزش اقدام کنید. با وجود این در هر یک از مطالب به صورت مختصر مفاهیم مورد استفاده در هر قسمت را تشریح خواهیم کرد که برای دوستانی که ممکن است این موارد را فراموش کردهباشند؛ بسیار مفید خواهد بود. همچنین در برخی از قسمتها اگر ممکن بود، تمرینها و جوابهای آنان را به صورت کامل و اجرا شده و حتی کامپایل شده در این پایگاه اینترنتی و یا دیگر مکانهای ذخیرهسازی قرار خواهم داد تا اگر مشکلی در اجرا داشتید با مطالعه کد و یا دیدن جواب آماده بتوانید مشکل خود را برطرف کنید. برای درک بهتر و یا درگیر کردن بیشتر مخاطبین آموزش، چند تمرین ساده نیز در پایان هر فصل و یا قسمت آموزشی آماده خواهد شد که با حل آنان بتوانید سطح مهارت خود را بهبود بخشید. جواب تمرینها نیز در قسمت بعدی قرار خواهد گرفت.
در پایان هر فصل از آموزش نیز نسخهای پیدیاف از آموزش ایجاد شده توسط زیلاتک و زیپرشین برای شما دوستان عزیز آماده خواهد شد که در پایان هر فصل برای بارگیری آماده خواهد بود. بنابراین به راحتی در پایان این مطلب آموزشی میتوانید این فایلها را به صورت غیربرخط و برخط در اختیار دیگر افراد نیز قرار دهید.
اولین برنامه در کیوت
اولین برنامهای که در کیوت خواهیم نوشت برنامه معروف سلامدنیا خواهد بود. در این برنامه ما یک پنجره خواهیم داشت که درونش توسط یک دکمه متن معروف سلامدنیا نوشته شده است. برای ایجاد یک پنجره در کیوت باید از کلاس شیء یک نمونه ایجاد کنیم. برای ایجاد یک نمونه از یک کلاس در سی++ می بایست از کلاس مورد نظر یک نمونه با نام دلخواه تعریف کنیم؛ سپس مشخصات دلخواه را به آن تخصیص دهیم. در مثال زیر ما یک شیء از کلاس کیو-اپلیکیشن ساختهایم و نام آن را به سادگی «app» گذاشتهایم. سپس مشخصات خاصی را به ویندوز نصب دادهایم. سپس یک شیء دکمه توسط کلاس «QButton» ساختهایم و متن آن را نیز به دلخواه برای نمونه سلامدنیا قرار دادهایم.
برای نوشتن برنامه جدید، بیایید از محیط توسعه پیشفرض کیوت استفاده کینم؛ همچنین میتوان دستورات را در یک فایل متنی نوشت؛ اما اگر این کدها را در یک محیط توسعه بنویسیم، توسعه و رفعاشکال کدها بسیار راحتتر خواهد بود. پس برای این کار ابتدا نرمافزار QtCreator را اجرا کنید؛ سپس بر روی دکمه پروژه جدید «New Project» کلیک کنید تا با تصویری مانند تصویر زیر مواجه شوید. همانند تصویر زیر اجرای پروژه خالی را انتخاب کنید تا یک پروژه خالی برای شما ایجاد شود. دیگر پروژهها دارای مقادیری از پیش تعیین شدهاند که در این مورد ما نیازی به آنان نداریم. به دلیل اینکه این اولین پروژه نوشته شده شما خواهد بود؛ بنابراین یک پروژه خالی از سردرگمی شما در کدهای عجیب ایجاد شده، جلوگیری خواهد کرد.
بعد از انتخاب گزینه فوق وارد برنامه سلامدنیا یا هر نامدیگری که انتخاب کردهاید خواهید شد؛ در برنامه فوق حتی یک فایل کد سی++ «CPP» نیز وجود ندارد که برای نوشتن کدهای سی++ است. به جز فایل پروژه، فایل دیگری را در این برنامه نخواهید دید. در بالای برنامه چندین منو وجود دارد که دارای موارد متعددی است در سمت چپ هم هفت نقشک را مشاهده خواهید کرد که با کلیک بر روی هر یک از آنان قسمتهای مختلف باز خواهند شد. به صورت پیشفرض شما در بخش خوشآمد گویی هستید. سپس با ایجاد و یا گشودن یک پروژه به بخش ویرایش خواهید رفت که در آن کدهای خود را مینویسید. در بخش سوم شما به بخش طراحی رابط کاربری به زبان به صورت بصری دسترسی دارید. بخش دیباگ «Debug» نیز برای رفع ایراد و اشکالزدایی از کدهای نوشته شده ایجاد شده است. بخش آنالیز و راهنما نیز برای مطالعه راهنمای کیوت و یا آنالیز کد و کارایی برنامه کاربرد دارد.
پروژههای کیوت همواره با فایلی با پسوند«pro.» همراه هستند که برای شناسایی فایلهای کد و سرآیند، تنظیمات خاص و افزودن کتابخانهها و … را در خود نگاه میدارد. این فایل برای qmake ضروری است. در خط فرمان با دستور خطفرمان «qmake -project» میتوان آن را ساخت؛ اما در این محیط توسعه نگرانی خاصی در اینباره نخواهیم داشت. با وجود این میتوان آن را به صورت دستی ایجاد کرد و مقادیر مورد نظر را در آن نوشت؛ مثلا ما در فایل خالی ساخته شده «helloworld.pro» مقادیر زیر را به صورت دستی وارد میکنیم.
TEMPLATE = app TARGET = name_of_the_app QT = core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- TEMPLATE توصیف میکند که پروژه فوق از چه جنسی است؛ برنامه است یا یک کتابخانه و ….
- TARGET نام برنامه یا کتابخانه را مشخص میکند.
- کتابخانههای مورد نیاز برای اجرا و نوشتن برنامه که در برابر عبارت QT آورده خواهند شد.
با این حال تنظیمات پروژه در بخش پروژه «Projects» که با نقشک واقع در سمت چپ نرمافزار باز میشود؛ قرار دارد. در این بخش تنظیمات متنوعی قابل انجام است. با وجود این به دلیل آنکه هنوز کدی در کیوت ننوشتهایم؛ اگر بر روی نقشک چکش در سمت راست پایین برنامه کلیک کنید با پیغام خطا مواجه خواهید شد. برای آنکه کدهای سی++ خود را بنویسید باید یک فایل با پسوند سی++ «cpp» نوشته و با نام دلخواه ذخیره کنید. برای ایجاد یک فایل سی++ باید روی نام پروژه واقع شده در لیست پروژهها «Projects» راست کلیک کنید. بعد از آن در منوی باز شده باید دستور افزودن مقدار جدید «Add New» را انتخاب کنید و در کادر باز شده، در سمت چپ گزینه سی++ را انتخاب کرده و در سمت راست سی++ سورسفایل «C++ Source File» را انتخاب کنید.
سپس با انتخاب نام فایل که ما آن را «main.cpp» قرار دادهایم؛ فایل مورد نظر در نرمافزار در شاخه جدید به نام سورس «Source» قرار خواهد گرفت. این فایل را با کلیک بر روی نام فایل باز کنید. بعد از باز شدن فایل یک فایل خالی در سمت راست برنامه باز میشود. اگر فایل را به صورت دستی و با ویرایشگر متنی ساختهاید. بعد از ایجاد هر فایل میتوان آن را به شکل دستی به پروژه افزود. برای افزودن دستی فایل به پروژه میبایست آن را به شکل زیر در فایل پروژه اضافه کنید.
TEMPLATE = app TARGET = name_of_the_app QT = core gui SOURCES += main.cpp
همانطور که مشاهده میکنید، هر فایل را با افزودن نام فایل بعد از عبارت سورس «SOURCES» به پروژه شناساندهایم. اگر قصد افزودن یک سرآیند با پسوند «h.» را نیز داشتیم باید به شکل زیر آن را به پروژه اضافه کنیم. هر سرآیند را بعد از عبارت سرآیند «HEADERS» وارد میکنیم.
HEADERS += first_file.h second_file.h SOURCES += first_file.cpp second_file.cpp
اگر فایلها با ویزارد ایجاد شدهاند که به موارد فوق نیازی نخواهد بود. دقت کنید اگر فایل توسط ویرایشگر دیگری ایجاد شده است باید در فایل پروژه به شکل بالا بنام کامل فایل آورده شود. ایجاد خودکار فایل توسط برنامه باعث میشود که این عمل خودکار رخ دهد و نام فایلها در این فایل وارد خواهد شد. این موارد را برای این توزیع میدهم که اگر تغییری در فایل پروژه مشاهده کردید؛ بدانید برای چه چیزی این تغییر ایجاد شده است. سپس کدی کوتاه را در فایل ایجاد شده بنویسید که در آن برنامه را ایجاد کرده و تابع اصلی را نیز تعیین کردهباشید. مثلا در کد زیر به طور ساده چنین کاری انجام شده است.
#include <QApplication> int main(int argc, char **argv) { QApplication app (argc, argv); return app.exec(); }
حال که کد بالا را نوشتید و ذخیره کردید. شما یک برنامه ساده را نوشتهاید که تقریبا کاری نمیکند! فقط یک برنامه ایجاد کرده که شیءی از کلاس کیو-اپلیکیشن «QApplication» است. آن را به سادگی به شکل نامی کوتاه «app» نامیدهایم و سپس در تابع اصلی به تعریف آن پرداختهایم. دستور فوق معمولا برای نوشتن فایل اصلی main استفاده میشوند. در شرایط پیچیدهتر مقادیر خاص و کدهای خاصی نیز به آن افزوده میشود اما معمولا این فایل از کدهای زیادی برخوردار نیست و برای تعریف کلیت برنامه است. در این بخش پارامترهای برنامه مشخص خواهند شد. پارامترها به صورت آرایه در «argv» ذخیره شدهاند و تعداد آنان نیز در «argc» مشخص میشود. با وجود این در کیوت، این موارد توسط کلاس کیو-اپلیکیشن نیز قابل دسترسی است.
حال به جای مقادیر بالا، مقادیر زیر را در فایل اصلی «main.cpp» وارد کنید. در فایل زیر همانطور که در ابتدای شروع نوشتن برنامه اشاره داشتیم از دو کلاس «QPushButton» و «QApplication» استفاده کردهایم و دو نمونه از آنان را با نامهای دلخواه ایجاد کردهایم. سپس در تابع اصلی «Main»، به تعریف کلاس دکمه «QPushButton» با مشخصات جدید و عنوان دلخواه اقدام کردهایم. در این مثال ما گفتهایم که یک دکمه با نام «button» را برای ما از نوع «QButton» ایجاد کن که دارای متن سلامدنیا باشد.
#include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button ("سلامدنیا !"); button.show(); return app.exec(); }
همانطور که مشاهده میکنید یک پنجره کوچک و بدون عنوان خاص اجرا شده و یک دکمه کوچک با متن دلخواه یعنی سلامدنیا، نمایش داده خواهد شد. برای کامپایل باید ابتدا بر روی نقشک چکش در کناره و سمت چپ برنامه کلیک کنید تا برنامه کاملا و با موفقیت کامپایل و ترجمه شود. بعد از آنکه برنامه کامپایل شد با کلیک بر روی نقشک مثلث که برای اجرای برنامه است میتوانید برنامه را اجرا کنید. آن نقشکی که یک عدد کفشدوزک یا سوسک سبز رنگ هم بر آن نقش بسته هم برای رفع ایراد و .. کاربرد دارد. برای رفع ایراد در گنو/لینوکس در هنگام استفاده از کامپایلر جیسیسی «GCC» بهتر است که جیدیبی «GDB» نصب باشد.
نحوه کامپایل فایل چگونه است؟ اگر از بعد از اجرای دستور بالا و دیدن خروجی برنامه برایتان جالب است بدانید که این برنامه چگونه برنامه شما را به این شکل اجرا کرد؟ باید بگویم که همانطور که در فایل پروژه مشخص کردید؛ تمامی کتابخانهها و فایلها و حتی نام اجرایی برنامه مشخص شده بود. بعد از آن «QMAKE» با استفاده از کتابخانههای نصب شده در سیستم و همچنین کد شما توانست خروجی فوق را تولید کند که در هر سیستمعامل به شکل مختلف نمایش داده خواهد شد. چرا این اتفاق رخ می دهد؟ به دلیل اینکه کیوت قادر است از کتابخانهها و API سیستمعامل جاری شما در هنگام کامپایل کد استفاده کند و برنامه را به صورت کاملا محلی تولید کند.
بعد از دانستن موارد فوق، بیایید کمی کدهای بالا را به صورت دیگری تغییر دهیم. مثلا دکمه ایجاد شده را کمی زیباتر کرده و برخی مشخصات خاص را به آن اختصاص دهیم. به طور کلی به یک دکمه در کیوت میتوان موارد زیر را اختصاص داد.
- TEXT = متنی که باید روی دکمه باشد؛
- FONT = قلم مورد استفاده برای نمایش متون؛
- TOOLTIP = پیغامی به صورت کادری کوچک که در هنگام رفتن ماوس روی دکمه نمایش داده خواهد شد؛
- ICON = نقشک دکمه را مشخص میکند.
- غیره
موارد اشاره شده را را میتوان به دیگر ویدجتها نیز اختصاص داد. بیایید برای شروع استفاده از این تغییرات، یک متن را برای پیغام «ToolTip» در نظر بگیریم. کد زیر را اگر اجرا کنید؛ متنی دلخواه را در هنگام رفتن بر روی دکمه فوق مشاهده خواهیم کرد.
#include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button; button.setText("My text"); button.setToolTip("A tooltip"); button.show(); return app.exec(); }
همچنین میتوانیم قلم متن دکمه را به موردی دلخواه تغییر دهیم. این مورد کمی پیچیدهتر است. «QFont» یک کلاس از کیوت است که با آن میتوان مختصات یک قلم را مشخص کرد و با نامی دلخواه ذخیره کرد. به شبه کد زیر توجه کنید. منظور از قلم دی اینجا حالت قلم و حتی اندازه و دیگر تنظیمات قلم نیز می شود.
QFont(const QString & family, int pointSize = –1, int weight = -1, bool italic = false)
در شبه کد بالا که از راهنمای رسمی کیوت آورده شده است؛ مشاهده میشود که در این کلاس میتوان اکثر نکات مربوط به قلم و نوع نمایش متون را تغیر داد. پس با توجه به مثال بالا کدی مانند شبهکد بالا را به کد میافزاییم. در کد بالا گزینههای مختلفی قابل مشاهده است یکی از این گزینهها را میتوان نام قلم دانست که در مورد زیر قلمی که برای کدنویسی کاربرد دارد را به کار بردهایم که همانند قلم کنسول «Monospace» است.
QFont font ("Courier"); button.setFont(font);
در اینجا ما فقط نوع قلم را به نوع دلخواه تغییر دادهایم. میتوانید از دیگر تنظیمات استفاده شده در شبه کد نیز استفاده کنید. تغییر نقشک دکمه نیز به روشی مشابه تغییر قلم قابل انجام است. برای این کار باید نمونهای از کلاس «QIcon» ایجاد کنیم و سپس به آن یک نقشک را نسبت دهیم و به مشخصه Icon دکمه نسبت دهیم. در زیر هر مسیری که بخواهید را به جای مسیر داده شده زیر میتوانید وارد کنید. اگر مسیر فوق را به عنوان منابع به کیوت بشناسانیم بهتر است. این مورد را بعدا آموزش خواهیم داد. همچنین می توانید از نقشکهای موجود در سیستمعامل و یا نصب شده در توزیع گنو/لینوکس خود، استفاده کنید. مثلا اگر در توزیع شما نقشکهای نامیکس دایرهای نصب است؛ کیوت از آن نقشک برای نمایش یک سمبل خاص استفاده نماید. مثلا سمبل پخش فایل و … . این موارد نیز به طور مفصل در قسمت مربوط به نقشکها و گرافیک توزیع داده خواهد شد.
QIcon icon ("/path/to/my/icon/icon.png"); button.setIcon(icon);
بعد از آنکه موارد فوق را در کد مثال مذکور اضافه نماییم؛ کد به شکل زیر خواهد بود. کد های فوق را قبل از نمایش دکمه روی دکمه اعمال میکنیم تا تغییرات دلخواه بر روی دکمه ما اعمال شود. در این مثال ما یک قلم سفارشی با نام ترافیک « B Terafik» را به دکمه نصبت دادهایم. سپس یک متن فارسی آزمایشی را نوشته و یک نقشک جالب از چهرهای با عینک دودی را به عنوان نقشک دکمه قرار دادهایم.
#include <QApplication> #include <QPushButton> int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button; button.setText(" سلام دوستان عزیز این زیباتر است "); button.setToolTip("A tooltip"); QFont font ("B Yekan"); button.setFont(font); QIcon icon ("/home/ehsan/Public/Qt/HelloWorld/cool-icon.png"); button.setIcon(icon); button.show(); return app.exec(); }
سپس اگر کد نوشته شده را کامپایل کنید؛ برنامه اجرا شده به صورت زیر خواهد بود. کد فوق یک مثال ساده است اما در آن ساختار یک برنامه کیوت به طور کامل قابل مشاهده است. یک برنامه کیوت مانند یک برنامه نوشته شده به زبان سی++ است اما برخی موارد در آن وجود دارد که اگر یک برنامهنویس سی++ به آنان بنگرد ممکن است در نگاهی سطحی متوجه آنان نشود. بنابراین آموزش کیوت به طور خاص برای برنامهنویسان سی++ نیز مورد نیاز است تا بتوانند از مواردی که در کیوت به سی++ افزوده شده است اطلاع یابند. (اگر کنجکاو هستید محیط زیر چه محیطی است؛ باید بگویم محیط زیر همان محیط توسعه نرمافزار کیوت است که با قالب تیره همراه شده است. قالب تیره در قسمت تنظیمات قابل انتخواب است چه در بخش کلیت برنامه چه در بخش کدنویسی و نوشتن کد که رنگ تیره قابل انتخاب است.
در این مثال کوتاه آموختیم که چگونه از محیط توسعه کیوت استفاده کنیم؛ علاوه بر آن با چند کلاس ساده و تنظیمات و نحوه نوشتن و استفاده از آنان در کیوت آشنا شده و توانستیم با استفاده از آنان، دکمهای ساده را در خروجی قرار دهید. تا اینجای کار برای این قسمت کافی است. با تمرین موارد فوق و کار کردن روی برخی کلاسها و ویدجتهای دیگر در کیوت و گشت و گزار در ویکی و راهنمای کیوت خواهید توانست به موارد دیگر دست یافته و از آن موارد اطلاع پیدا کنید.