Development/Tutorials/Using KXmlGuiWindow (ru): Difference between revisions
Shaforostoff (talk | contribs) |
Shaforostoff (talk | contribs) No edit summary |
||
Line 8: | Line 8: | ||
pre=[[Development/Tutorials/First_program_(ru)|Урок 1 - Hello World]]| | pre=[[Development/Tutorials/First_program_(ru)|Урок 1 - Hello World]]| | ||
next=[[Development/Tutorials/Using_KActions_(ru)|Урок 3 - | next=[[Development/Tutorials/Using_KActions_(ru)|Урок 3 - KAction и XmlGui]]| | ||
reading={{class|KXmlGuiWindow}} | reading={{class|KXmlGuiWindow}} | ||
Line 25: | Line 25: | ||
===mainwindow.h=== | ===mainwindow.h=== | ||
<code cppqt> | <code cppqt n> | ||
#ifndef MAINWINDOW_H | #ifndef MAINWINDOW_H | ||
#define MAINWINDOW_H | #define MAINWINDOW_H | ||
Line 48: | Line 48: | ||
===mainwindow.cpp=== | ===mainwindow.cpp=== | ||
<code cppqt> | <code cppqt n> | ||
#include "mainwindow.h" | #include "mainwindow.h" | ||
Line 68: | Line 68: | ||
Чтобы завершить создание приложение, нужно написать пару строк в main.cpp: | Чтобы завершить создание приложение, нужно написать пару строк в main.cpp: | ||
===main.cpp=== | ===main.cpp=== | ||
<code cppqt> | <code cppqt n> | ||
#include <KApplication> | #include <KApplication> | ||
#include <KAboutData> | #include <KAboutData> |
Revision as of 20:44, 13 December 2007
Development/Tutorials/Using_KXmlGuiWindow
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
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
Чтобы получить пользу on 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 и в строке 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.