Please ask development related questions in the KDE Community Forum.
Development/Tutorials/Using KXmlGuiWindow (ru)
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenščina | српски | Українська | 简体中文 | 繁體中文
| Tutorial Series | Beginner Tutorial |
| Prerequisites | Урок 1 - Hello World |
| What's Next | Урок 3 - KAction и XmlGui |
| Further Reading | KXmlGuiWindow |
Contents |
[edit] Введение
Это продолжение урока по созданию первой программы, здесь представлена базовая информация по классу KXmlGuiWindow.
В предыдущем уроке рассказывалось как создать всплывающее диалоговое окно, теперь мы сделаем первые шаги по созданию полноценного функционального приложения.
[edit] Использование KXmlGuiWindow
Чтобы получить пользу on KXmlGuiWindow, следует создать производный от него класс. Наш код находится в двух файлах: mainwindow.cpp и mainwindow.h. Класс KXmlGuiWindow выбран базовым, так как с помощью него можно использовать XML, например, чтобы определить структуру меню нашего приложения.
[edit] mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <KXmlGuiWindow> #include <KTextEdit> class MainWindow : public KXmlGuiWindow { public: private: KTextEdit* textArea; }; #endif
Сначала в строке 7 мы объявляем производный от KXmlGuiWindow класс: class MainWindow : public KXmlGuiWindow, а затем - конструктор MainWindow(QWidget *parent=0);.
И наконец, объявляем указатель на объект, который станет главной частью нашей программы. KTextEdit является базовым редактором текста в формате richtext, поддерживающем некоторые вкусности KDE, как, например, автоматическое скрытие курсора.
[edit] mainwindow.cpp
#include "mainwindow.h" { textArea = new KTextEdit; setCentralWidget(textArea); setupGUI(); }
Сначала, конечно же, в строке 1 мы включаем заголовочный файл, содержащий объявление класса.
В строке 5 создаётся объект нашего текстового редактора. Затем в строке 6 мы используем встроенную функцию setCentralWidget(), указывающую KXmlGuiWindow, что должно находиться в центральной секции нашего окна.
Наконец, вызывается функция KXmlGuiWindow::setupGUI(), фоново выполняющая много различных действий по инициализации GUI и создающая панель меню по умолчанию (Settings, Help).
[edit] Создание main.cpp
Чтобы завершить создание приложение, нужно написать пару строк в main.cpp:
[edit] 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(); }
Новыми (по сравнению с Уроком 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.

