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

From KDE TechBase
(Added russian translation)
 
(fix link)
Line 14: Line 14:


==Введение==
==Введение==
Этот продолжение [[Development/Tutorials/Programming_Tutorial_KDE_4/First_program|урока по созданию первой программы]], здесь представлена базовая информация об использовании класса {{class|KXmlGuiWindow}}.
Этот продолжение [[Development/Tutorials/First_program|урока по созданию первой программы]], здесь представлена базовая информация об использовании класса {{class|KXmlGuiWindow}}.


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

Revision as of 16:38, 31 July 2007


Development/Tutorials/Using_KXmlGuiWindow

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

Введение

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

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

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

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

mainwindow.h

  1. ifndef MAINWINDOW_H
  2. define MAINWINDOW_H
  1. include <KXmlGuiWindow>
  2. include <KTextEdit>

class MainWindow : public KXmlGuiWindow {

 public:
   MainWindow(QWidget *parent=0);
 private:
   KTextEdit* textArea;

};

  1. endif

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

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

mainwindow.cpp

  1. include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) {

 textArea = new KTextEdit;
 setCentralWidget(textArea);
 setupGUI();

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

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

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


Создание main.cpp

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

main.cpp

  1. include <KApplication>
  2. include <KAboutData>
  3. include <KCmdLineArgs>
  1. 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();

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


CMake

Наилучший способ собрать наше приложение - использовать CMake. Все изменения по сравнению с уроком 1 заключаются в добавлении файла 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})

Компиляция

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

cmake . && make && ./tutorial2

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

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