Please ask development related questions in the KDE Community Forum.
Development/Tutorials/Using KXmlGuiWindow (csb)
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 | Spòdlowi ùczbòwnik |
| Prerequisites | Ùczba 1 - Witôj swiece |
| What's Next | Ùczba 3 - KActions ë XMLGUI |
| Further Reading | KXmlGuiWindow |
Contents |
[edit] Òpis
Nen ùczbòwnik je kòntinuacją negò First Program Tutorial ë wprowadzô klasã KXmlGuiWindow.
W pòprzédnym ùczbòwnikù, programa wëskrzëniwała dialogòwi òkno, ale terô më chcemë jic kąsk dali do fùnkcjonujący aplikacëji.
[edit] KXmlGuiWindow
KXmlGuiWindow dotëgòwùje fùl widok przédnégò òkna z lëstwą menu, nôrządzów ë statusa a téż przédnym placã w centróm dlô wiôldżégò widżetu. Wiele aplikacëjów wëdostôwô z ti klasë, ga na prosti ôrt definiëje òna widok menu, lëstwë nôrzãdzów lopkach XML (na technologija zwóna je XMLGUI). Nie mdzëmë brëkòwelë XMLGUI w tim ùczbòwnikù, ale pòznómë gò w jednym z pòstãpnëch.
Żebë miec jaczi pòżëtk z KXmlGuiWindow mùszimëzrobic ji pòdklasã. Dlôtë téż ùsôdzoné mómë dwa lopczi: mainwindow.cpp ë mainwindow.h z taczim kòdã.
[edit] mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <KXmlGuiWindow> #include <KTextEdit> class MainWindow : public KXmlGuiWindow { public: private: KTextEdit* textArea; }; #endif
Przódë më zrobilë pòdklasã KXmlGuiWindow réze 7 w class MainWindow : public KXmlGuiWindow.
Dali mómë zadeklarowóné kònstruktor z MainWindow(QWidget *parent=0);.
Kù reszce, deklarëjemë wskazywôcz do òbiektu, jaczi je przédnym w naji programie. KTextEdit je wbùdowónëm bòkadnym, tekstowim editorã.
[edit] mainwindow.cpp
#include "mainwindow.h" { textArea = new KTextEdit(); setCentralWidget(textArea); setupGUI(); }
W pierszi réze mùszimë dodac nagłówkòwi lopk zamëkający w se deklaracëjã klasë.
W piąti réze, jinicjalizëjemë nasz tekstowi editor z òbiektã. Dali w réze szósti brëkùjemë wbùdowóny fùnkcëji setCentralWidget() z KXmlGuiWindow jaka gôdô KXmlGuiWindow co mô wëskrzënic sã w cetralny sekcëji òkna.
Na kùńcu wëwòłónô je fùnkcëjô KXmlGuiWindow::setupGUI(), chtërna robi wiele dobri, ale niewidoczny robòtë ë ùsôdzô domëslną lëstwą menu (Ùstawë, Pòmòc).
[edit] Nazôd do main.cpp
Żebë rëszëc ókno, nót je dodac czile rézów w 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(); }
Nowé rézë tuwò (w przërównanim do Ùczbë 1) to 5, 18 ë 19. W réze 18 ùsadzamë nasz òbiekt MainWindow a w 19 wëskrzëniwómë gò.
[edit] CMake
Nôlepi zbòdowac programã brëkùjąc CMake. Wszëtkò co je zmienioné w przërównanim do pierszi ùczbë to to, że mainwindow.cpp òstało dodóné do lëstë zdrojów a téż nôdpis tutorial1 to terô 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] Kòmpilacëjô
Abë skòmpilowac kòd, zlënkòwac ë zrëszëc, ùżëjë:
mkdir build && cd build cmake .. make ./tutorial2
[edit] Biéj dali
Terô mòżesz jic dali do ùżëcô KActions.

