Please ask development related questions in the KDE Community Forum.
Development/Tutorials/Using KXmlGuiWindow (fi)
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 | Opas 1 - Hei maailma! |
| What's Next | Opas 3 - KActions ja XMLGUI |
| Further Reading | KXmlGuiWindow |
Contents |
[edit] Lyhyesti
Tämä perehdytys jatkaa Hei Maailma-oppaasta ja tutustuttaa Main-ikkunan luomiseen KXmlGuiWindow-luokan avulla.
Edellisessä oppaassa käytimme ikkunan luomiseksi pop-up-ikkunan tyylistä valintaikkunaa. Nyt on tarkoitus siirtyä askel lähemmäksi käyttökelpoista ohjelmaa.
[edit] Main-ikkuna
KXmlGuiWindow-luokka tuottaa oikean Main-ikkunan, valikko-, työkalu- ja tilariveineen sekä tarjoaa keskelle tilan suurelle vimpaimelle (widget). Suurin osa KDE:n ohjelmista on sovellettu tästä luokasta. KXmlGuiWindow-luokka tarjoaa yksinkertaisen tavan määritellä valikko- ja työkalurivit halutunlaisiksi XML-tiedostojen avulla (tämä tekniikka on nimeltään XMLGUI). Tässä oppaassa emme vielä käytä XMLGUI:ta, vaan jätämme sen seuraavaan.
Saadaksemme käyttökelpoisen Main-ikkunan on KXmlGuiWindow alaluokitettava. Siksi luomme kaksi tiedostoa, mainwindow.cpp sekä mainwindow.h, joihin alla oleva koodi sijoitetaan.
[edit] mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <KXmlGuiWindow> #include <KTextEdit> class MainWindow : public KXmlGuiWindow { public: private: KTextEdit* textArea; }; #endif
Ensin teemme KXmlGuiWindow-luokasta aliluokan rivillä 7: class MainWindow : public KXmlGuiWindow.
Seuraavaksi luomme muodostajan: MainWindow(QWidget *parent=0);.
Lopuksi luomme osoittimen, joka osoittaa objektiin, joka on pääosassa ohjelmaamme. KTextEdit on yleiskäyttöinen editori muotoiltua tekstiä varten. Siinä osaa muutamia KDE:n hienouksia, kuten automaattisen kohdistimen piilottamisen.
[edit] mainwindow.cpp
#include "mainwindow.h" { textArea = new KTextEdit(); setCentralWidget(textArea); setupGUI(); }
Ensiksi on tietenkin sisällytettävä otsaketiedosto, jossa mainwindow-luokka on esitelty.
Rivillä 5 osoitetaan textArea uuteen muotoillun tekstin editoriin. Seuraavaksi rivillä 6 kutsutaan KXmlGuiWindow-objektin sisäänrakennettua setCentralWidget()-funktiota, joka kertoo KXmlGuiWindow-objektille, että ikkunan keskialueella näytetään editori.
Lopuksi kutsutaan KXmlGuiWindow::setupGUI()-funktiota, joka huolehtii Main-ikkunan luomisessa tarvittavista asioista, sekä luo oletusvalikot (Asetukset, Ohje).
[edit] Jälleen kerrran - main.cpp
Saadaksemme Main-ikkunan käyttöön pitää vielä lisätä muutama rivi edellisen oppaan main.cpp-tiedostoon:
[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(); }
Perehdytys 1 verrattuna uudet rivit ovat 5,18 ja 19. Rivillä 18 luomme MainWindow-objektin ja rivillä 19 se piirretään ruudulle.
[edit] CMake
Paras tapa kääntää ohjelma on käyttää CMakea. Ainoat muutokset oppaaseen 1 nähdeon on, että mainwindow.cpp on lisätty lähdekoodilistaan ja tutorial1 on muutettu 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ääntäminen ja suoritus
Käännä, linkitä ja suorita seuraavasti:
mkdir build && cd build
cmake ..
make
./tutorial2
[edit] Seuraavaksi
Seuraavaksi voit siirtyä kohtaan Perehdytys 3 - KActions ja XMLGUI.

