Development/Tutorials/Using KXmlGuiWindow (fi)

From KDE TechBase


Development/Tutorials/Using_KXmlGuiWindow

Perehdytys 2 - Main-ikkunan luonti
Tutorial Series   Beginner Tutorial
Previous   Perehdytys 1 - Hei maailma!
What's Next   Tutorial 3 - KActions and XMLGUI
Further Reading   KXmlGuiWindow

Lyhyesti

Tämä perehdytys jatkaa Hei Maailma-perehdytyksestä perehdyttäen KXmlGuiWindow-luokan käyttöön Main-ikkunan luomiseksi.

Edellisessä perehdytyksessä käytimme ikkunan luomiseksi pop-up-ikkuna tyylistä valintaikkunaa mutta tässä on tarkoitus siirtyä askel lähemmäksi käyttökelpoista ohjelmaa.

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ä perehdytyksessä emme kumminkaan vielä käytä XMLGUI:ta, vaan jätämme sen seuraavaan.

Saadaksemme käyttökelpoisen Main-ikkunan, meidän tarvitsee alaluokittaa KXmlGuiWindow, joten luomme kaksi tiedostoa, mainwindow.cpp sekä mainwindow.h, joihin sijoitamme alla olevat koodit.

mainwindow.h

  1. ifndef MAINWINDOW_H
  2. define MAINWINDOW_H
  1. include <KXmlGuiWindow>
  2. include <KTextEdit>

class MainWindow : public KXmlGuiWindow {

 public:
   MainWindow(QWidget *parent=0);
 private:
   KTextEdit* textArea;

};

  1. endif

Ensin teemme KXmlGuiWindow-luokasta aliluokan rivillä 7: class MainWindow : public KXmlGuiWindow.

Seuraavaksi luomme muodostajan: MainWindow(QWidget *parent=0);.

Ja lopuksi luomme osoittimen joka osoittaa objektiin joka on pääosassa ohjelmaamme. KTextEdit on yleinen richtext-editori muutamilla KDE:n hienouksilla, kuten automaattinen kursorin piilottaminen.

mainwindow.cpp

  1. include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) {

 textArea = new KTextEdit();
 setCentralWidget(textArea);
 setupGUI();

} Ensimmäisenä, tietenkin, meidän tarvitsee sisällyttää otsikkotiedosto jossa mainwindow-luokka on esitelty.

Rivillä 5 osoitetaan textArea uuteen richtext-editoriin. Seuraavaksi rivillä 6 kutsutaan KXmlGuiWindow-objektin sisäänrakennettua setCentralWidget()-funktiota joka kertoo KXmlGuiWindow-objektille että ikkunan keskialueella näytetään richtext-editori.

Lopuksi kutsutaan KXmlGuiWindow::setupGUI()-funktiota joka huolehtii Main-ikkunan luomisessa tarvittavat asiat sekä luo oletusvalikot(Asetukset, Ohje).

Back to main.cpp

In order to actually run this window, we need to add a few lines in main.cpp:

main.cpp

  1. include <KApplication>
  2. include <KAboutData>
  3. include <KCmdLineArgs>
  1. 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();

} The only new lines here (compared to Tutorial 1) are 5, 18 and 19. On line 18, we create our MainWindow object and then on line 19, we display it.

CMake

The best way to build the program is to use CMake. All that's changed since tutorial 1 is that mainwindow.cpp has been added to the sources list and any tutorial1 has become 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})

Compile it

To compile, link and run it, use:

mkdir build && cd build
cmake ..
make
./tutorial2

Moving On

Now you can move on to using KActions.