Difference between revisions of "Development/Tutorials/Using KXmlGuiWindow (ru)"

Jump to: navigation, search
m (Text replace - "</code>" to "</syntaxhighlight>")
 
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
+
 
 
{{TutorialBrowser|
 
{{TutorialBrowser|
  

Latest revision as of 10:29, 14 July 2012

Использование KXmlGuiWindow
Tutorial Series   Beginner Tutorial
Previous   Урок 1 - Hello World
What's Next   Урок 3 - KAction и XmlGui
Further Reading   KXmlGuiWindow

Contents

[edit] Введение

Это продолжение урока по созданию первой программы, здесь представлена базовая информация по классу KXmlGuiWindow.

В предыдущем уроке рассказывалось как создать всплывающее диалоговое окно, теперь мы сделаем первые шаги по созданию полноценного функционального приложения.

Introtokdetutorial2.png

[edit] Использование KXmlGuiWindow

Чтобы получить пользу от KXmlGuiWindow, следует создать производный от него класс. Наш код находится в двух файлах: mainwindow.cpp и mainwindow.h. Класс KXmlGuiWindow выбран базовым, так как с помощью него можно использовать XML, например, чтобы определить структуру меню нашего приложения.

[edit] mainwindow.h

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3.  
  4. #include <KXmlGuiWindow>
  5. #include <KTextEdit>
  6.  
  7. class MainWindow : public KXmlGuiWindow
  8. {
  9.   public:
  10.     MainWindow(QWidget *parent=0);
  11.  
  12.   private:
  13.     KTextEdit* textArea;
  14. };
  15.  
  16. #endif

Сначала в строке 7 мы объявляем производный от KXmlGuiWindow класс: class MainWindow : public KXmlGuiWindow, а затем - конструктор MainWindow(QWidget *parent=0);.

И наконец, объявляем указатель на объект, который станет главной частью нашей программы. KTextEdit является базовым редактором текста в формате richtext, поддерживающем некоторые вкусности KDE, как, например, автоматическое скрытие курсора.

[edit] mainwindow.cpp

  1. #include "mainwindow.h"
  2.  
  3. MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
  4. {
  5.   textArea = new KTextEdit;
  6.   setCentralWidget(textArea);
  7.   setupGUI();
  8. }

Сначала, конечно же, в строке 1 мы включаем заголовочный файл, содержащий объявление класса.

В строке 5 создаётся объект нашего текстового редактора. Затем в строке 6 мы используем встроенную функцию setCentralWidget(), указывающую KXmlGuiWindow, что должно находиться в центральной секции нашего окна.

Наконец, вызывается функция KXmlGuiWindow::setupGUI(), фоново выполняющая много различных действий по инициализации GUI и создающая панель меню по умолчанию (Settings, Help).


[edit] Создание main.cpp

Чтобы завершить создание приложения, нужно написать пару строк в main.cpp:

[edit] main.cpp

  1. #include <KApplication>
  2. #include <KAboutData>
  3. #include <KCmdLineArgs>
  4.  
  5. #include "mainwindow.h"
  6.  
  7. int main (int argc, char *argv[])
  8. {
  9.   KAboutData aboutData( "tutorial2", 0,
  10.       ki18n("Tutorial 2"), "1.0",
  11.       ki18n("A simple text area"),
  12.       KAboutData::License_GPL,
  13.       ki18n("Copyright (c) 2007 Developer") );
  14.   KCmdLineArgs::init( argc, argv, &aboutData );
  15.  
  16.   KApplication app;
  17.  
  18.   MainWindow* window = new MainWindow();
  19.   window->show();
  20.  
  21.   return app.exec();
  22. }

Новыми (по сравнению с Уроком 1) являются только строки 18 и 19. В строке 18 мы создаём объект MainWindow и в строке 19 делаем его видимым.

[edit] CMake

Наилучший способ собрать наше приложение - использовать CMake. Все изменения по сравнению с уроком 1 заключаются в добавлении файла mainwindow.cpp в список исходников и смене названия tutorial1 на tutorial2.

[edit] 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})

[edit] Компиляция

Скомпилировать, скомпоновать и запустить приложение:

cmake . && make && ./tutorial2

[edit] Продолжим изучение

Теперь можно перейти к статье о KActions.


This page was last modified on 14 July 2012, at 10:29. This page has been accessed 6,385 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal