Development/Tutorials/Using KXmlGuiWindow (fi): Difference between revisions
No edit summary |
No edit summary |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{TutorialBrowser| | {{TutorialBrowser| | ||
series=Beginner Tutorial| | series=Beginner Tutorial| | ||
name= | name=Opas 2 - Main-ikkunan luonti| | ||
pre=[[Development/Tutorials/First_program (fi)| | pre=[[Development/Tutorials/First_program (fi)|Opas 1 - Hei maailma!]]| | ||
next=[[Development/Tutorials/Using_KActions (fi)| | next=[[Development/Tutorials/Using_KActions (fi)|Opas 3 - KActions ja XMLGUI]]| | ||
reading={{class|KXmlGuiWindow}} | reading={{class|KXmlGuiWindow}} | ||
Line 14: | Line 14: | ||
==Lyhyesti== | ==Lyhyesti== | ||
Tämä perehdytys jatkaa [[Development/Tutorials/First_program (fi)|Hei Maailma]]-oppaasta ja tutustuttaa Main-ikkunan luomiseen {{class|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. | |||
[[image:introtokdetutorial2.png|frame|center]] | [[image:introtokdetutorial2.png|frame|center]] | ||
==Main-ikkuna== | ==Main-ikkuna== | ||
{{class|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. {{class|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, <tt>mainwindow.cpp</tt> sekä <tt>mainwindow.h</tt>, joihin alla oleva koodi sijoitetaan. | |||
===mainwindow.h=== | ===mainwindow.h=== | ||
< | <syntaxhighlight lang="cpp-qt" line> | ||
#ifndef MAINWINDOW_H | #ifndef MAINWINDOW_H | ||
#define MAINWINDOW_H | #define MAINWINDOW_H | ||
Line 42: | Line 42: | ||
#endif | #endif | ||
</ | </syntaxhighlight> | ||
Ensin teemme KXmlGuiWindow-luokasta aliluokan | Ensin teemme KXmlGuiWindow-luokasta aliluokan rivillä 7: <tt>class MainWindow : public KXmlGuiWindow</tt>. | ||
Seuraavaksi luomme muodostajan: <tt>MainWindow(QWidget *parent=0);</tt>. | Seuraavaksi luomme muodostajan: <tt>MainWindow(QWidget *parent=0);</tt>. | ||
Lopuksi luomme osoittimen, joka osoittaa objektiin, joka on pääosassa ohjelmaamme. {{class|KTextEdit}} on yleiskäyttöinen editori muotoiltua tekstiä varten. Siinä osaa muutamia KDE:n hienouksia, kuten automaattisen kohdistimen piilottamisen. | |||
===mainwindow.cpp=== | ===mainwindow.cpp=== | ||
< | <syntaxhighlight lang="cpp-qt" line> | ||
#include "mainwindow.h" | #include "mainwindow.h" | ||
Line 59: | Line 59: | ||
setupGUI(); | setupGUI(); | ||
} | } | ||
</ | </syntaxhighlight> | ||
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 | Lopuksi kutsutaan KXmlGuiWindow::setupGUI()-funktiota, joka huolehtii Main-ikkunan luomisessa tarvittavista asioista, sekä luo oletusvalikot (Asetukset, Ohje). | ||
== | ==Jälleen kerrran - main.cpp== | ||
Saadaksemme Main-ikkunan käyttöön pitää vielä lisätä muutama rivi edellisen oppaan main.cpp-tiedostoon: | |||
===main.cpp=== | ===main.cpp=== | ||
< | <syntaxhighlight lang="cpp-qt" line> | ||
#include <KApplication> | #include <KApplication> | ||
#include <KAboutData> | #include <KAboutData> | ||
Line 93: | Line 93: | ||
return app.exec(); | return app.exec(); | ||
} | } | ||
</ | </syntaxhighlight> | ||
Perehdytys 1 verrattuna uudet rivit ovat 5,18 ja 19. | Perehdytys 1 verrattuna uudet rivit ovat 5,18 ja 19. Rivillä 18 luomme MainWindow-objektin ja rivillä 19 se piirretään ruudulle. | ||
==CMake== | ==CMake== | ||
Paras tapa | Paras tapa kääntää ohjelma on käyttää CMakea. Ainoat muutokset oppaaseen 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=== | ||
< | <syntaxhighlight lang="ini" line> | ||
project (tutorial2) | project (tutorial2) | ||
Line 113: | Line 113: | ||
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}) | ||
</ | </syntaxhighlight> | ||
=== | ===Kääntäminen ja suoritus=== | ||
Käännä, linkitä ja suorita seuraavasti: | |||
< | <syntaxhighlight lang="text"> | ||
mkdir build && cd build | mkdir build && cd build | ||
cmake .. | cmake .. | ||
make | make | ||
./tutorial2 | ./tutorial2 | ||
</ | </syntaxhighlight> | ||
==Seuraavaksi== | ==Seuraavaksi== | ||
Seuraavaksi voit | Seuraavaksi voit siirtyä kohtaan [[Development/Tutorials/Using_KActions (fi)|Perehdytys 3 - KActions ja XMLGUI]]. | ||
[[Category:C++]] | [[Category:C++]] |
Latest revision as of 09:44, 15 July 2012
Tutorial Series | Beginner Tutorial |
Previous | Opas 1 - Hei maailma! |
What's Next | Opas 3 - KActions ja XMLGUI |
Further Reading | KXmlGuiWindow |
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.
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.
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <KXmlGuiWindow>
#include <KTextEdit>
class MainWindow : public KXmlGuiWindow
{
public:
MainWindow(QWidget *parent=0);
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.
mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
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).
Jälleen kerrran - main.cpp
Saadaksemme Main-ikkunan käyttöön pitää vielä lisätä muutama rivi edellisen oppaan main.cpp-tiedostoon:
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.
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.
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
Seuraavaksi
Seuraavaksi voit siirtyä kohtaan Perehdytys 3 - KActions ja XMLGUI.