Development/Tutorials/Using KXmlGuiWindow (ru)
Tutorial Series | Beginner Tutorial |
Previous | Урок 1 - Hello World |
What's Next | Урок 3 - KAction и XmlGui |
Further Reading | KXmlGuiWindow |
Введение
Это продолжение урока по созданию первой программы, здесь представлена базовая информация по классу KXmlGuiWindow.
В предыдущем уроке рассказывалось как создать всплывающее диалоговое окно, теперь мы сделаем первые шаги по созданию полноценного функционального приложения.
![](/images.techbase/b/b8/Introtokdetutorial2.png)
Использование KXmlGuiWindow
Чтобы получить пользу от KXmlGuiWindow, следует создать производный от него класс. Наш код находится в двух файлах: mainwindow.cpp и mainwindow.h. Класс KXmlGuiWindow выбран базовым, так как с помощью него можно использовать XML, например, чтобы определить структуру меню нашего приложения.
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
Сначала в строке 7 мы объявляем производный от KXmlGuiWindow класс: class MainWindow : public KXmlGuiWindow, а затем - конструктор MainWindow(QWidget *parent=0);.
И наконец, объявляем указатель на объект, который станет главной частью нашей программы. KTextEdit является базовым редактором текста в формате richtext, поддерживающем некоторые вкусности KDE, как, например, автоматическое скрытие курсора.
mainwindow.cpp
#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
#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 делаем его видимым.
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.