Development/Tutorials/Using KXmlGuiWindow (fi): Difference between revisions

    From KDE TechBase
    Line 97: Line 97:


    ==CMake==
    ==CMake==
    The best way to build the program is to use CMake. All that's changed since tutorial 1 is that <tt>mainwindow.cpp</tt> has been added to the sources list and any <tt>tutorial1</tt> has become <tt>tutorial2</tt>.
    Paras tapa kääntää ohjelma on käyttää CMakea. Ainoat muutokset Perehdytys 1 nähdeon on että <tt>mainwindow.cpp</tt> on lisätty lähdekoodilistaan ja <tt>tutorial1</tt> on muutettu <tt>tutorial2</tt>.
     
    ===CMakeLists.txt===
    ===CMakeLists.txt===
    <code ini n>
    <code ini n>
    Line 114: Line 115:
    </code>
    </code>


    ===Compile it===
    ===Kääntäminen ja suoritus===
    To compile, link and run it, use:
    Käännä, linkitä ja suorita seuraavasti:
    mkdir build && cd build
    <code>
    cmake ..
    mkdir build && cd build
    make
    cmake ..
    ./tutorial2
    make
    ./tutorial2
    </code>


    ==Moving On==
    ==Moving On==

    Revision as of 11:45, 10 January 2008


    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).

    Jälleen kerrran - main.cpp

    Jotta saisimme otettua Main-ikkunan käyttöön, pitää lisätä muutama rivi edellisen perehdytyksen main.cpp-tiedostoon:

    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();
    

    } Perehdytys 1 verrattuna uudet rivit ovat 5,18 ja 19. Rivillä 18 luomme MainWindow-objektin ja rivillä 19 se piirretään ruudulle.

    CMake

    Paras tapa kääntää ohjelma on käyttää CMakea. Ainoat muutokset Perehdytys 1 nähdeon on että mainwindow.cpp on lisätty lähdekoodilistaan ja tutorial1 on muutettu 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})

    Kääntäminen ja suoritus

    Käännä, linkitä ja suorita seuraavasti: mkdir build && cd build cmake .. make ./tutorial2

    Moving On

    Now you can move on to using KActions.