Development/Tutorials/Using KXmlGuiWindow (fa)
Development/Tutorials/Using_KXmlGuiWindow
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
سری آموزشی | آموزش مقدماتی |
پیشنیازها | آموزش ۱ - سلام دنیا |
پس از این | آموزش ۳ - KActions و XMLGUI |
مطالعهی بیشتر | KXmlGuiWindow |
چکیده
این آموزش کار را از برنامهی آموزش اول پی میگیرد و کلاس KXmlGuiWindow را معرفی میکند.
در آموزش پیشین، برنامه یک پنجرهی پیغام را به نمایش درآورد، اما ما میخواهیم به سوی ساختن یک برنامهی کاربردی گام برداریم.
KXmlGuiWindow
KXmlGuiWindow یک پنجرهی اصلی کامل با نوارهای منو، ابزار و وضعیت ارائه میدهد. همچنین یک ناحیهی اصلی مرکزی مناسب یک ابزارک (Widget) بزرگ در اختیار برنامهنویس میگذارد. بیشتر برنامههای کاربردی KDEبرای پنجرهی اصلی خود، کلاسهایی مشتقشده از این کلاس میسازند؛ چرا که تعریف نوار منو و نوار ابزار را به وسیلهی XML آسان میسازد (این تکنولوژی XMLGUI نام دارد). با اینکه در این بخش از آموزش از XMLGUI استفاده نمیکنیم، اما در بخش بعدی از آن بهره خواهیم برد.
برای اینکه KXmlGuiWindow مفید واقع شود، باید زیرکلاسی از آن مشتق کنیم. بنابراین دو فایل mainwindow.cpp و mainwindow.h را میسازیم و کد کلاس MainWindow خود را در آن قرار میدهیم.
mainwindow.h
<syntaxhighlight lang="cpp-qt" line>
- ifndef MAINWINDOW_H
- define MAINWINDOW_H
- include <KXmlGuiWindow>
- include <KTextEdit>
class MainWindow : public KXmlGuiWindow {
public: MainWindow(QWidget *parent=0);
private: KTextEdit* textArea;
};
- endif
در سطر ۷، ابتدا با class MainWindow : public KXmlGuiWindow زیرکلاسی از KXmlGuiWindow به نام MainWindow تعریف میکنیم.
سپس تابع سازنده را اعلان میکنیم: MainWindow(QWidget *parent=0);
و در نهایت، اشارهگری به شیء اصلی برنامهی خود تعریف میکنیم. KTextEdit یک ویرایشگر متن عمومی است که برخی ویژگیهای KDE روی آن اعمال شدهاست (همانند پنهانسازی خودکار اشارهگر ماوس).
mainwindow.cpp
<syntaxhighlight lang="cpp-qt" line>
- include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) {
textArea = new KTextEdit(); setCentralWidget(textArea); setupGUI();
}
قبل از هر چیز، در سطر اول باید فایل سرآمدی را که اعلان کلاس در آن آمدهاست، include کنیم.
در سطر ۵، شیء ویرایشگر متن مقدار دهی میشود؛ شیء جدیدی از نوع KTextEdit. سپس در سطر ۶، از تابع setCentralWidget() از کلاس KXmlGuiWindow استفاده میکنیم که معین میکند چه چیزی باید در ناحیهی مرکزی پنجره نمایان شود.
در پایان، KXmlGuiWindow::setupGUI() فراخوانی میشود. این تابع در پس پرده کارهای بسیاری انجام میدهد و نوار منوی پیشفرض (شامل منوهای Help و Settings) را میسازد.
بازگشت به main.cpp
برای این که برنامهمان را اجرا کنیم، باید چند خط به main.cpp بیافزاییم:
main.cpp
<syntaxhighlight lang="cpp-qt" line>
- include <KApplication>
- include <KAboutData>
- include <KCmdLineArgs>
- include "mainwindow.h"
int main (int argc, char *argv[]) {
KAboutData aboutData( "tutorial2", 0, ki18n("Tutorial 2"), "1.0", ki18n("A simple text area"), KAboutData::License_GPL, ki18n("Copyright (c) 2007 Developer") ); KCmdLineArgs::init( argc, argv, &aboutData ); KApplication app; MainWindow* window = new MainWindow(); window->show();
return app.exec();
}
در اینجا (در مقایسه با آموزش ۱)، تنها سطرهای ۵، ۱۸ و ۱۹ جدید هستند. در سطر ۱۸ شیء MainWindow خود را میسازیم و در سطر ۱۹ آن را نمایش میدهیم.
CMake
بهترین راه ساختن برنامه استفاده از CMake است. نسبت به آموزش ۱ تنها mainwindow.cpp به لیست فایلهای مبدأ اضافه شده و همهی tutorial1ها به tutorial2 تبدیل شدهاند.
CMakeLists.txt
project (tutorial2)
find_package(KDE4 REQUIRED)
include_directories(${KDE4_INCLUDES})
set(tutorial2_SRCS
main.cpp
mainwindow.cpp
)
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
کامپایل کنید
برای کامپایل، لینک و اجرا میتوانید به صورت زیر عمل کنید:
mkdir build && cd build cmake .. make ./tutorial2
به پیش
حالا میتوانید به استفاده از KActionها پیش بروید.