Development/Tutorials/Using KXmlGuiWindow (fa): Difference between revisions

From KDE TechBase
(New page: {{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}} {{TutorialBrowser| series=آموزش مقدماتی| name=استفاده از KXmlGuiWindow| pre=[[De...)
 
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
 
{{TutorialBrowser|
{{TutorialBrowser_(fa)|


series=آموزش مقدماتی|
series=آموزش مقدماتی|
Line 30: Line 30:
===mainwindow.h===
===mainwindow.h===
<div dir="ltr">
<div dir="ltr">
<code cppqt n>
<syntaxhighlight lang="cpp-qt" line>
#ifndef MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define MAINWINDOW_H
Line 47: Line 47:


#endif
#endif
</code>
</syntaxhighlight>
</div>
</div>
در سطر ۷، ابتدا با <tt>class MainWindow : public KXmlGuiWindow</tt> زیرکلاسی از KXmlGuiWindow به نام MainWindow تعریف می‌کنیم.
در سطر ۷، ابتدا با <tt>class MainWindow : public KXmlGuiWindow</tt> زیرکلاسی از KXmlGuiWindow به نام MainWindow تعریف می‌کنیم.
Line 57: Line 57:
===mainwindow.cpp===
===mainwindow.cpp===
<div dir="ltr">
<div dir="ltr">
<code cppqt n>
<syntaxhighlight lang="cpp-qt" line>
#include "mainwindow.h"
#include "mainwindow.h"


Line 66: Line 66:
   setupGUI();
   setupGUI();
}
}
</code>
</syntaxhighlight>
</div>
</div>
قبل از هر چیز، در سطر اول باید فایل سرآمدی را که اعلان کلاس در آن آمده‌است، include کنیم.
قبل از هر چیز، در سطر اول باید فایل سرآمدی را که اعلان کلاس در آن آمده‌است، include کنیم.
Line 79: Line 79:
===main.cpp===
===main.cpp===
<div dir="ltr">
<div dir="ltr">
<code cppqt n>
<syntaxhighlight lang="cpp-qt" line>
#include <KApplication>
#include <KApplication>
#include <KAboutData>
#include <KAboutData>
Line 102: Line 102:
   return app.exec();
   return app.exec();
}
}
</code>
</syntaxhighlight>
</div>
</div>
در اینجا (در مقایسه با آموزش ۱)، تنها سطرهای ۵، ۱۸ و ۱۹ جدید هستند. در سطر ۱۸ شیء MainWindow خود را می‌سازیم و در سطر ۱۹ آن را نمایش می‌دهیم.
در اینجا (در مقایسه با آموزش ۱)، تنها سطرهای ۵، ۱۸ و ۱۹ جدید هستند. در سطر ۱۸ شیء MainWindow خود را می‌سازیم و در سطر ۱۹ آن را نمایش می‌دهیم.
Line 110: Line 110:
===CMakeLists.txt===
===CMakeLists.txt===
<div dir="ltr">
<div dir="ltr">
<code ini n>
<syntaxhighlight lang="ini" line>
project (tutorial2)
project (tutorial2)


Line 123: Line 123:
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
</code>
</syntaxhighlight>
</div>
</div>



Latest revision as of 15:39, 15 July 2012

استفاده از KXmlGuiWindow
سری آموزشی   آموزش مقدماتی
پیش‌نیازها   آموزش ۱ - سلام دنیا
پس از این   آموزش ۳ - KActions و XMLGUI
مطالعه‌ی بیشتر   KXmlGuiWindow

چکیده

این آموزش کار را از برنامه‌ی آموزش اول پی می‌گیرد و کلاس KXmlGuiWindow را معرفی می‌کند.

در آموزش پیشین، برنامه یک پنجره‌ی پیغام را به نمایش درآورد، اما ما می‌خواهیم به سوی ساختن یک برنامه‌ی کاربردی گام برداریم.

KXmlGuiWindow

KXmlGuiWindow یک پنجره‌ی اصلی کامل با نوارهای منو، ابزار و وضعیت ارائه می‌دهد. همچنین یک ناحیه‌ی اصلی مرکزی مناسب یک ابزارک (Widget) بزرگ در اختیار برنامه‌نویس می‌گذارد. بیشتر برنامه‌های کاربردی KDEبرای پنجره‌ی اصلی خود، کلاس‌هایی مشتق‌شده از این کلاس می‌سازند؛ چرا که تعریف نوار منو و نوار ابزار را به وسیله‌ی XML آسان می‌سازد (این تکنولوژی XMLGUI نام دارد). با این‌که در این بخش از آموزش از XMLGUI استفاده نمی‌کنیم، اما در بخش بعدی از آن بهره خواهیم برد.

برای این‌که KXmlGuiWindow مفید واقع شود، باید زیرکلاسی از آن مشتق کنیم. بنابراین دو فایل mainwindow.cpp و mainwindow.h را می‌سازیم و کد کلاس MainWindow خود را در آن قرار می‌دهیم.

mainwindow.h

#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

#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

#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ها پیش بروید.