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

Jump to: navigation, search
m (main.cpp)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
+
 
 
{{TutorialBrowser|
 
{{TutorialBrowser|
  
Line 22: Line 22:
 
==Использование KXmlGuiWindow==
 
==Использование KXmlGuiWindow==
  
Чтобы получить пользу on KXmlGuiWindow, следует создать производный от него класс. Наш код находится в двух файлах: <tt>mainwindow.cpp</tt> и <tt>mainwindow.h</tt>. Класс KXmlGuiWindow выбран базовым, так как с помощью него можно использовать XML, например, чтобы определить структуру меню нашего приложения.
+
Чтобы получить пользу от KXmlGuiWindow, следует создать производный от него класс. Наш код находится в двух файлах: <tt>mainwindow.cpp</tt> и <tt>mainwindow.h</tt>. Класс KXmlGuiWindow выбран базовым, так как с помощью него можно использовать XML, например, чтобы определить структуру меню нашего приложения.
  
 
===mainwindow.h===
 
===mainwindow.h===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#ifndef MAINWINDOW_H
 
#ifndef MAINWINDOW_H
 
#define MAINWINDOW_H
 
#define MAINWINDOW_H
Line 42: Line 42:
  
 
#endif
 
#endif
</code>
+
</syntaxhighlight>
 
Сначала в строке 7 мы объявляем производный от KXmlGuiWindow класс: <tt>class MainWindow : public KXmlGuiWindow</tt>, а затем - конструктор <tt>MainWindow(QWidget *parent=0);</tt>.
 
Сначала в строке 7 мы объявляем производный от KXmlGuiWindow класс: <tt>class MainWindow : public KXmlGuiWindow</tt>, а затем - конструктор <tt>MainWindow(QWidget *parent=0);</tt>.
  
Line 48: Line 48:
  
 
===mainwindow.cpp===
 
===mainwindow.cpp===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#include "mainwindow.h"
 
#include "mainwindow.h"
  
Line 57: Line 57:
 
   setupGUI();
 
   setupGUI();
 
}
 
}
</code>
+
</syntaxhighlight>
 
Сначала, конечно же, в строке 1 мы включаем заголовочный файл, содержащий объявление класса.
 
Сначала, конечно же, в строке 1 мы включаем заголовочный файл, содержащий объявление класса.
  
Line 66: Line 66:
  
 
==Создание main.cpp==
 
==Создание main.cpp==
Чтобы завершить создание приложение, нужно написать пару строк в main.cpp:
+
Чтобы завершить создание приложения, нужно написать пару строк в main.cpp:
 
===main.cpp===
 
===main.cpp===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#include <KApplication>
 
#include <KApplication>
 
#include <KAboutData>
 
#include <KAboutData>
Line 91: Line 91:
 
   return app.exec();
 
   return app.exec();
 
}
 
}
</code>
+
</syntaxhighlight>
 
Новыми (по сравнению с Уроком 1) являются только строки 18 и 19. В строке 18 мы создаём объект MainWindow и в строке 19 делаем его видимым.
 
Новыми (по сравнению с Уроком 1) являются только строки 18 и 19. В строке 18 мы создаём объект MainWindow и в строке 19 делаем его видимым.
  
Line 98: Line 98:
  
 
===CMakeLists.txt===
 
===CMakeLists.txt===
<code ini>
+
<syntaxhighlight lang="ini">
 
project (tutorial2)
 
project (tutorial2)
  
Line 111: Line 111:
 
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
 
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
 
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})
 
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})
</code>
+
</syntaxhighlight>
  
 
===Компиляция===
 
===Компиляция===
Line 118: Line 118:
  
 
==Продолжим изучение==
 
==Продолжим изучение==
Теперь можно перейти к статье о [[Development/Tutorials/Using_KActions|KActions]].
+
Теперь можно перейти к статье о [[Development/Tutorials/Using_KActions_(ru)|KActions]].
  
 
[[Category:C++]]
 
[[Category:C++]]

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,376 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