برنامه‌نویسی گرافیکی آسان با چارچوب Qt-قسمت دوم

برنامه‌نویسی گرافیکی آسان با چارچوب Qt-قسمت دوم

در جلسه پیش چارچوب کیوت معرفی شد و گفته شد که می‌توانید هنگام نصب این چارچوب IDE مخصوص آن qtcreator را نیز نصب کنید. حال در این قسمت با استفاده از این IDE می‌خواهیم اولین برنامه خود را توسط QtQuick پیاده‌سازی کنیم.

به رسم آموزش‌های همیشگی زبان‌های برنامه‌نویسی اولین برنامه ما «سلام دنیا» است. برای این منظور مراحل زیر را اجرا کنید:
ابتدا نرم‌افزار qtcreator را اجرا کنید سپس از منوی File گزینه New File or Project را انتخاب کنید و بعد مطابق شکل زیر قسمت‌های آبی شده را شما نیز انتخاب کنید.

qt1

سپس دکمه choose را انتخاب کنید تا پروژه QtQuick شما ساخته شود. پس از کلیک دکمه choose صفحه زیر باز می‌شود که اسم پروژه و آدرس ذخیره سازی آن را می‌خواهد.

qt2

پس از آن مراحل بعدی را با زدن next ادامه دهید تا پروژه شما ساخته شود. همین‌طور که مشاهده می‌کنید پروژه‌ای ساخته شده و فایل کدی حاوی برنامه «سلام دنیا» ساخته شده است.

qt3

نکاتی که باید در این کد به آن توجه کنید:
•    برنامه‌هایی که با QtQuick یا به عبارتی با Qml نوشته می‌شوند باید در فایل‌هایی با پسوند qml ذخیره شوند.
•    برای کامپایل و اجرای برنامه‌های کافی است بر روی مثلث سبز سمت چپ پایین صفحه کلیک کنید عملیات کامپایل انجام می‌گیرد.
•    این محیط برای کامپایل خود از qmake استفاده می‌کند و qmake نحوه کامپایل خود را از فایلی به اسم پروژه و با پسوند pro می‌خواند (در اینجا ”faceit_Hello_world.pro”). محتویات این فایل را با هم بررسی کنیم.

TEMPLATE = app
QT += qml quick
CONFIG += c++11
SOURCES += main.cpp
RESOURCES += qml.qrc

خط اول یا TEMPLATE = app به qmake می‌گوید که یک برنامه اجرایی بساز نه یک کتابخانه
خط دوم یا QT += qml quick به qmake می‌گوید که از کتابخانه‌ها و سرفایل‌های چارچوب کیوت qml و quick را اضافه کن. هر کتابخانه با فاصله از هم جدا می‌شود.
خط سوم یا CONFIG += c++11 به qmake می‌گوید که خصوصیات برنامه‌نویسی cpp ورژن ۲۰۱۱ را فعال کن.
خط چهارم یا SOURCES += main.cpp به qmake نام فایل‌های کد برنامه را می‌دهد (فایل‌هایی که باید کامپایل شوند). نکته قابل توجه این است که وقتی برنامه‌ای را توسط qml می‌نویسیم حتماً باید برنامه‌ای به زبان cpp آن را فراخوانی کند و شروع اجرا از کد cpp است.
خط پنجم یا RESOURCES += qml.qrc به qmake منابع پروژه را معرفی می‌کند که در اینجا برنامه qml ما زیر مجموعه qml.qrc قرار دارد.
•    محتویات کد cpp که برنامه qml ما را فرامی‌خواند به صورت زیر است:

#include 
#include 
int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

برای برنامه‌هایی که دارای محیط گرافیکی هستند QguiApplication را include  می‌کنیم.
برای خواندن کد‌های qml از سرفایل QQmlApplicationEngine استفاده می‌کنیم.
تعریف تابع main در cpp اجباری است.
یک شی از کلاس QGuiApplication  می‌سازیم و آرگومان‌های تابع main را برای کنترل‌های احتمالی آینده ارسال می‌کنیم.
یک شی نیز از کلاس QQmlApplicationEngine می‌سازیم که توسط آن بتوانیم فایل کد qml را بارگذاری کرده و اجرا کنیم.
و در نهایت برنامه qml بارگذاری شده در مرحله قبل را توسط app.exec اجرا می‌کنیم.

حال کد qml را بررسی می‌کنیم:

import QtQuick 2.3
import QtQuick.Window 2.2
Window {
    visible: true
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
}


•    همان‌طور که مشاهده می‌کنید نحو qml به css شباهت دارد.
•    برای استفاده از ماژول‌های qml موجود باید آن‌ها import کرد که فرمت اضافه کردن آن به این صورت است که ابتدا کلمه کلیدی import نوشته می‌شود و بعد از آن شناسه ماژول و بعد از آن ورژن آن می‌آید.
•    پس از اضافه کردن ماژول‌ها می‌توانیم از آن‌ها بهره ببریم.
•    ابتدا از کلاس Window استفاده می‌کنیم، چون برنامه ما یک برنامه گرافیکی است و یک پنجره دارد این کلاس به عنوان پدر تمامی عناصری که در این پنجره قرار می‌گیرند، می‌باشدو تمامی عناصر دیگر در آکلاد باز و بسته آن قرار می‌گیرند.
•    همانند css هر کلاس یک سری خصوصیت دارد که توسط اسم خصوصیت علامت دو نقطه و سپس مقدار خصوصیت آورده می‌شوند. همان‌طور که مشاهده می‌کنید اجباری به نوشتن سمی کالن در پایان خطوط نیست.
•    کلاس‌هایی که زیر مجموعه Window قرار می‌گیرند در این پنچره قرار می‌گیرند. برای اینکه وقتی بر روی علامت بستن بالای پنجره کلیک شد برنامه بسته شود نیاز است که کلاس روی‌داد ماوس به اسم MouseArea در پنجره استفاده کنیم و خصوصیت onClicked آن را دستور Qt.quit استفاده کنیم، در غیر این صورت با کلیک بر علامت بستن پنجره هیچ اتفاقی رخ نمی‌دهد.
•    برای نمایش متن در پنجره از کلاس Text استفاده می‌کنیم که خصوصیت text آن را با دستور qsTr که تابعی برای استفاده از رشته در زبان‌های مختلف است کاربرد دارد.
•    خصوصیت وسط چین شدن آن را نیز می‌توان با anchors.centerInd تعیین کرد.

برنامه بالا برنامه‌ای ساده برای شروع کدنویسی با کیوت بود. در قسمت‌های آتی با ما همراه باشید.

امین  خزاعی

امین خزاعی

امین، برنامه نویس سیستمی و امنیت و ساکن شیراز. عاشق گنو/ لینوکس و نرم افزار آزاد. امین اعتقاد دارد همیشه باید برای توسعه نرم افزارهای آزاد و گسترش فرهنگ آزادی در نرم افزار وقت گذاشت.


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر