Development/Tutorials/First program (fi): Difference between revisions
(Tästä se alkaa..) |
(→Koodi) |
||
Line 61: | Line 61: | ||
Kolmantena luomme {{class|KApplication}} objektin. This needs to be done exactly once in each program since it is needed for things such as [[Development/Tutorials/Localization/i18n|i18n]]. | Kolmantena luomme {{class|KApplication}} objektin. This needs to be done exactly once in each program since it is needed for things such as [[Development/Tutorials/Localization/i18n|i18n]]. | ||
Kaikki KDE:n vaatimat asettelut on nyt tehty ja voimme siirtyä tekemään mielenkiintoisempia asioita ohjelmallemme. Seuraavana on tarkoitus luoda pop-up-ikkuna sekä muokata yhtä painonappia mieleiseksemme. Painonapin muokkauksessa käytämme {{class|KGuiItem}}-objektia. {{class|KGuiItem}}:n ensimmäinen parametri muodostajassa määrittelee painonapissa näytettävän tekstin. Seuraava parametri määrittelisi {{class|KGuiItem}}:n ikonin, joka tässä tapauksessa on jätetty tyhjäksi antamalla argumentiksi tt>QString()</tt>(tyhjä QString). Viimeisenä asetamme käytönaikaisen vihjeen (joka näytetään kun hiiren osoitin pysähtyy hetkeksi objektin päälle) sekä "Mikä tämä on?"-selvityksen(Näytetään hiiren oikean napin klikkauksen tai Shift-F1 kautta). | |||
Painonappi on nyt valmis ja voimme luoda pop-up-ikkunan. Me kutsumme <tt>{{class|KMessageBox}}::questionYesNo()</tt>-funktiota tähän tarkoitukseen, joka oletuksena luo viesti-ikkunan varustettuna "Kyllä" ja "Ei" painonapeilla. Funktion toinen argumentti määrittelee tekstin jäka näytetään keskellä pop-up-laatikkoa. Kolmas argumentti kertoo funktiolle ikkunan nimen, ja viimeisenä kerromme että korvaamme "Yes"-painonapin luomallamme <tt>KGuiItem guiItem</tt> objektilla. | |||
Nyt olemme käyneet koodin läpi vaihe vaiheelta ja valmiitä kokeilemaan kääntämistä ja ohjelman suoritusta. | |||
==Build== | ==Build== |
Revision as of 05:58, 10 January 2008
Development/Tutorials/First_program
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
Tutorial Series | Beginner Tutorial |
Previous | C++, Qt, KDE4 development environment |
What's Next | Tutorial 2 - KXmlGuiWindow |
Further Reading | CMake |
Lyhyesti
Ensimmäisen ohjelmasi tulisi tervehtiä maailmaa "Hei Maailma!"-viestillä, vai mitä? Tätä tarkoitukseen käytämme KMessageBox-luokkaa, ja muokkaamme yhtä painonappia.
Ohjeita siitä kuinka käyttää KDevelop-ohjelmaa KDE 4-sovellusten kanssa on saatavilla tällä sivulla
Silti sinun tarvitsee vielä muokata CMake tiedostot käsin.
Koodi
Kaikki tarvittava koodi voidaan sijoittaa yhteen tiedostoon. Luo tiedosto main.cpp ja kopioi alla oleva koodi siihen:
- include <KApplication>
- include <KAboutData>
- include <KCmdLineArgs>
- include <KMessageBox>
int main (int argc, char *argv[])
{
KAboutData aboutData("tutorial1", // Ohjelman nimi järjestelmän käyttöön.
0, // Nimi viestiluetteluun, käytä ohjelmannimeä jos nolla.
ki18n("Tutorial 1"), // Näytettävä ohjelman nimi.
"1.0", // Ohjelman versionumero. Merkkijono.
ki18n("KMessageBox popup"), // Lyhyt kuvaus siitä mitä ohjelma tekee.
KAboutData::License_GPL, // Lisenssin tunniste
ki18n("(c) 2007"), // Tekijänoikeusmerkintä
ki18n("Some text..."), // Vapaata tekstiä..
"http://tutorial.com", // Ohjelman kotisivu.
"[email protected]"); // Sähköpostiosoite bugien raportoimista varten.
KCmdLineArgs::init( argc, argv, &aboutData );
KApplication app;
KGuiItem guiItem( QString( "Hello" ), QString(),
QString( "this is a tooltip" ),
QString( "this is a whatsthis" ) );
KMessageBox::questionYesNo( 0, "Hello World", "Hello", guiItem );
}
Ensimmäinen KDE-luokka tässä ohjelmassa on KAboutData. Tämä luokka tallentaa ohjelman tiedot, kuten lyhyen kuvauksen, ylläpitäjätiedot, lisenssitiedot, jne. Lähestulkoon kaikissa KDE ohjelmissa tulisi olla tämä luokka.
Seuraavana on KCmdLineArgs. Tämän luokan tarkoituksena on määritellä komentorivin argumentit, esimerkiksi, avataksesi ohjelman tietyn tiedoston kanssa. Kuitenkin, tässä perehdytyksessä, me yksinkertaisesti alustamme sen KAboutData objektilla, jonka ensimmäisessä kohdassa loimme, jotta voimme käyttää --version tai --author kytkimiä.
Kolmantena luomme KApplication objektin. This needs to be done exactly once in each program since it is needed for things such as i18n.
Kaikki KDE:n vaatimat asettelut on nyt tehty ja voimme siirtyä tekemään mielenkiintoisempia asioita ohjelmallemme. Seuraavana on tarkoitus luoda pop-up-ikkuna sekä muokata yhtä painonappia mieleiseksemme. Painonapin muokkauksessa käytämme KGuiItem-objektia. KGuiItem:n ensimmäinen parametri muodostajassa määrittelee painonapissa näytettävän tekstin. Seuraava parametri määrittelisi KGuiItem:n ikonin, joka tässä tapauksessa on jätetty tyhjäksi antamalla argumentiksi tt>QString()(tyhjä QString). Viimeisenä asetamme käytönaikaisen vihjeen (joka näytetään kun hiiren osoitin pysähtyy hetkeksi objektin päälle) sekä "Mikä tämä on?"-selvityksen(Näytetään hiiren oikean napin klikkauksen tai Shift-F1 kautta).
Painonappi on nyt valmis ja voimme luoda pop-up-ikkunan. Me kutsumme KMessageBox::questionYesNo()-funktiota tähän tarkoitukseen, joka oletuksena luo viesti-ikkunan varustettuna "Kyllä" ja "Ei" painonapeilla. Funktion toinen argumentti määrittelee tekstin jäka näytetään keskellä pop-up-laatikkoa. Kolmas argumentti kertoo funktiolle ikkunan nimen, ja viimeisenä kerromme että korvaamme "Yes"-painonapin luomallamme KGuiItem guiItem objektilla.
Nyt olemme käyneet koodin läpi vaihe vaiheelta ja valmiitä kokeilemaan kääntämistä ja ohjelman suoritusta.
Build
If you set up your environment as described in Getting Started/Build/KDE4, you can compile this code with
g++ main.cpp -o tutorial1 \ -I$QTDIR/include/Qt \ -I$QTDIR/include/QtCore \ -I$QTDIR/include \ -I$KDEDIR/include/KDE \ -I$KDEDIR/include \ -L$KDEDIR/lib \ -L$QTDIR/lib -lQtCore -lQtGui -lkdeui -lkdecore
and then run it with
dbus-launch ./tutorial1
Using CMake
If that worked, you may want to use CMake, just like the rest of KDE. This will automatically locate the libraries and headers for KDE, Qt etc. and will allow you to easily build your applications on other computers.
CMakeLists.txt
Create a file named CMakeLists.txt in the same directory as main.cpp with this content:
project (tutorial1)
find_package(KDE4 REQUIRED)
include_directories(${KDE4_INCLUDES})
set(tutorial1_SRCS main.cpp)
kde4_add_executable(tutorial1 ${tutorial1_SRCS})
target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS})
The find_package() function locates the package that you ask it for (in this case KDE4) and sets some variables describing the location of the package's headers and libraries. In this case we will use the KDE4_INCLUDES variable which contains the path to the KDE4 header files.
In order to allow the compiler to find these files, we pass that variable to the include_directories() function which adds the KDE4 headers to the header search path.
Next we create a variable called tutorial1_SRCS using the set() function. In this case we simply set it to the name of our only source file.
Then we use kde4_add_executable() to create an executable called tutorial1 from the source files listed in our tutorial1_SRCS variable. Finally we link our executable to the KDE4 kdeui library using target_link_libraries() and the KDE4_KDEUI_LIBS variable which was set by the find_package() function.
Make And Run
Again, if you set up your environment as described in Getting Started/Build/KDE4, you can compile this code with:
cmakekde
Or if you did not:
mkdir build && cd build cmake .. make
And launch it with:
./tutorial1
Moving On
Now you can move on to using KXmlGuiWindow.