Development/Tutorials/First program (csb): Difference between revisions

From KDE TechBase
(translate to csb - done)
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/First_program}}
 
{{TutorialBrowser|
{{TutorialBrowser|


Line 28: Line 28:
==Kòd==
==Kòd==
Wszëtczé kòdë jaczich je nót to le jeden lopk: <tt>main.cpp</tt>. Ùsôdzë gò z kòdã pòdónym niżi:
Wszëtczé kòdë jaczich je nót to le jeden lopk: <tt>main.cpp</tt>. Ùsôdzë gò z kòdã pòdónym niżi:
<code cppqt>
<syntaxhighlight lang="cpp-qt">
#include <KApplication>
#include <KApplication>
#include <KAboutData>
#include <KAboutData>
Line 50: Line 50:
                         // Licencëjô kòdu
                         // Licencëjô kòdu
                         KAboutData::License_GPL,
                         KAboutData::License_GPL,
                         // Aùtorsczi prawa
                         // Aùtorsczé prawa
                         ki18n("(c) 2007"),
                         ki18n("(c) 2007"),
                         // Òptacëjny tekst wëskrzeniony w òknie Ò programie.
                         // Òptacëjny tekst wëskrzeniony w òknie Ò programie.
Line 69: Line 69:
     return 0;
     return 0;
}
}
</code>
</syntaxhighlight>
Pierszi, òsoblëwi dlô KDE kòd jaczi chcemë pòznac w ti programie je {{class|KAboutData}}. Na klasa je brëkòwónô do trzëmaniô wëdowiédzë ò programie taczich jak krótczi òpisënk, aùtorowie czë licencëjô. W wikszi dzél programów bãdze zwëskôł z ti klasë.
Pierszi, òsoblëwi dlô KDE kòd jaczi chcemë pòznac w ti programie je {{class|KAboutData}}. Na klasa je brëkòwónô do trzëmaniô wëdowiédzë ò programie taczich jak krótczi òpisënk, aùtorowie czë licencëjô. W wikszi dzél programów bãdze zwëskôł z ti klasë.


Line 89: Line 89:
=== CMakeLists.txt ===
=== CMakeLists.txt ===
Ùsôdzë lopk nazwóny CMakeLists.txt w tim katalogù co main.cpp. W lopkù tim mô nalézc so zamkłosc:
Ùsôdzë lopk nazwóny CMakeLists.txt w tim katalogù co main.cpp. W lopkù tim mô nalézc so zamkłosc:
<code>
<syntaxhighlight lang="cmake">
project (tutorial1)
project (tutorial1)
find_package(KDE4 REQUIRED)
find_package(KDE4 REQUIRED)
Line 98: Line 98:
target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS})
target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS})
install(TARGETS tutorial1  ${INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS tutorial1  ${INSTALL_TARGETS_DEFAULT_ARGS})
</code>
</syntaxhighlight>
Fùnkcëjô <tt>find_package()</tt> szëkô za paczétã jaczi żądôsz (w tim przëmiôrze KDE4) ë ùstawiô niechtërne zmieniwne co òpisëją môl w jaczim nalézc jidze nagówczi i biblioteczi paczétów. Tu mdzemë brëkòwelë zmieniwny <tt>KDE4_INCLUDES</tt> co trzëmô stegnã do nagłówkòwëch lopków dlô KDE4.
Fùnkcëjô <tt>find_package()</tt> szëkô za paczétã jaczi żądôsz (w tim przëmiôrze KDE4) ë ùstawiô niechtërne zmieniwne co òpisëją môl w jaczim nalézc jidze nagówczi i biblioteczi paczétów. Tu mdzemë brëkòwelë zmieniwny <tt>KDE4_INCLUDES</tt> co trzëmô stegnã do nagłówkòwëch lopków dlô KDE4.


Line 110: Line 110:
Mòżesz rãczno wëwòłac CMake:
Mòżesz rãczno wëwòłac CMake:


mkdir build && cd build
<syntaxhighlight lang="bash">
cmake .. # Bôczë na ne dwa pùnktë - to nie fela, le òdwòłanié do ''katalogù wëżi".
mkdir build && cd build
make
cmake .. # Bôczë na ne dwa pùnktë - to nie fela, le òdwòłanié do ''katalogù wëżi".
make
</syntaxhighlight>


Abò, żlë môsz ùstawioné òkrãżé jak je to òpisóné w [[Getting_Started/Build/KDE4|Getting Started/Build/KDE4]], mòżesz skòmpilowac kòd pòlétã:
Abò, żlë môsz ùstawioné òkrãżé jak je to òpisóné w [[Getting_Started/Build/KDE4|Getting Started/Build/KDE4]], mòżesz skòmpilowac kòd pòlétã:

Latest revision as of 18:29, 15 July 2012

Witôj Swiece
Tutorial Series   Tutorial dlô zaczinającëch
Previous   C++, Qt, KDE4 development environment
What's Next   Tutorial 2 - KXmlGuiWindow
Further Reading   CMake

Abstract

Twòjô pierszô programa mô witac swiat drësznym "Witôj Swiece". Do tegò ùżëjemë KMessageBox ë dodómë swòje nôdpisë do knąpów.

Tip
Bë wëdostac wicy wëdowiédzë ò równojaczi klase z jaką sã pòtkôsz, Konqueror òferëje chùtczé skrodzënë. Téj, żebë òbaczëc jinfòrmacëje ò KMessageBox, wpiszë le "kde.kmessagebox" w Konquerorze a dokùmentacëjô òstónié wëskrzëniónô.


Tip
Mòżesz chcec brëkòwac KDevelop do swòjech projektów. Dofùlowùje òn kòd, ùmòżebniô łatwi przëstãp do przezéraniô dokùmentacëji API ë mô wspiarcé dlô debugòwaniô.

Przeczëtôj nen tutorial abë ùstawic dobrze KDevelop dlô nech dzejaniów. Nôpierwi chcesz sprôwdzëc, czë ùstôwë robią co do nich słëchô òtmëkającë bëtną aplikacëjã KDE 4 w KDevelop.

Równak bãdzesz wcyg mùszôł editowac CMake rãczno..


Kòd

Wszëtczé kòdë jaczich je nót to le jeden lopk: main.cpp. Ùsôdzë gò z kòdã pòdónym niżi:

#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <KMessageBox>

int main (int argc, char *argv[])
{
    KAboutData aboutData(
                         // Miono programë brëkòwóné bùtën.
                         "tutorial1",
                         // Miono katalogù wiadła
                         // Jeżlë ni ma, miono programù mdze brëkòwóné.
                         0,
                         // Miono jaczé sã wëskrzeni.
                         ki18n("Tutorial 1"),
                         // Wersëjô programë.
                         "1.0",
                         // Krótczi òpisrnk co robi aplikacëjô.
                         ki18n("Displays a KMessageBox popup"),
                         // Licencëjô kòdu
                         KAboutData::License_GPL,
                         // Aùtorsczé prawa
                         ki18n("(c) 2007"),
                         // Òptacëjny tekst wëskrzeniony w òknie Ò programie.
                         // Mòże tam bëc co le chcesz...
                         ki18n("Some text..."),
                         // Domôcô starna programë.
                         "http://tutorial.com/",
                         // Adresa e-mail dlô repòrtowaniô felów.
                         "[email protected]");

    KCmdLineArgs::init( argc, argv, &aboutData );
    KApplication app;
    KGuiItem yesButton( i18n( "Hello" ), QString(),
                        i18n( "This is a tooltip" ),
                        i18n( "This is a WhatsThis help text." ) );
    KMessageBox::questionYesNo( 0, i18n( "Hello World" ),
                                i18n( "Hello" ), yesButton );
    return 0;
}

Pierszi, òsoblëwi dlô KDE kòd jaczi chcemë pòznac w ti programie je KAboutData. Na klasa je brëkòwónô do trzëmaniô wëdowiédzë ò programie taczich jak krótczi òpisënk, aùtorowie czë licencëjô. W wikszi dzél programów bãdze zwëskôł z ti klasë.

Dali przeńdzemë do KCmdLineArgs. Na klasa je brëkòwónô do trzëmaniô argùmentów zrëszeniowëch, na przëmiôr, òtmëkaniô editora z lopkã. Równak terô, më zajinicjalizëjëmë ją z òbiektã KAboutData żebë brëkòwac przełączników --version czë --author.

Zôs ùsôdzemë òbiekt KApplication. To mùszi bëc zrobioné le jeden rôz w kòżdi programie, ga je to nót dlô rzeczów taczich jaki18n.

Terô żlë mómë ju zrëchtowóné wszëtczi ùstawë, mòżemë jic dali z barżi jinteresującëma sprawama z nają aplikacëją. Chcemë ùsôdzëc dialogòwi òkno, ale dopasëjemë pòd se jedną z knąpów. Do etgò nót nama mdze òbiekt KGuiItem. Pierszi argùment w kònstruktorze KGuiItem to tekst jaczi wëskrzeni sã w elemence (w naszim przëtrôfkù to knąpa). Téj mómë òptacëjã bë dac ikònã dlô knąpë, ale ga më ji nie chcemë tedr dómë tu QString(). Dali je pòdpòwiesc (to cos co sã wëskrzeni jeżlë najachac na knąpã mëszą) a na kùńcu tekst dlô "Co to je?" (przëstãpné przez klëkniãcé prawą knąpą mëszë albò Shift-F1).

Terô czej momë nasz element, mòżemë ùsôdzëc dialogòwi òkno. Wëwòłamë fùnkcëjã KMessageBox::questionYesNo() co domëslnô wëskrzëniwô òko z knąpama "Jo", "Nié". Drëdżi argùment to tekst jaczi sã pòkaże w tekstowim pòlu nad knąpą. Trzecy to titel òkna a zôs przepiszemë KGuiItem dlô knąpë "Jo" do ùsôdzonégò chùdzy KGuiItem guiItem.

Bôczë, że wszëtczi nôdpisë jaczi bãdą widzawné dlô brëkòwnika są wëwòłóné przez fùnkcëjã i18n(). To je mùsz dlô tegò, bë ne wiadła mògłé bëc przedolmaczoné. Wicy ò dolmaczënkach nalezc mòżesz w ùczbòwnikù pò lokalizowanim.

Në, mómë ju fardich naji kòd. Terô czas na bùdowanié ë sprawdzenié.

Bùdowanié

Chcesz ùżëc CMake dlô zbùdowaniô òkrãżégò. Môsz zrobioné lopk CMakeLists.txt, jaczi wëzwëska cmake do wëgenerowaniô wszëtczich lopków Makefile.

CMakeLists.txt

Ùsôdzë lopk nazwóny CMakeLists.txt w tim katalogù co main.cpp. W lopkù tim mô nalézc so zamkłosc:

project (tutorial1)
find_package(KDE4 REQUIRED)
include (KDE4Defaults)
include_directories(${KDE4_INCLUDES})
set(tutorial1_SRCS main.cpp)
kde4_add_executable(tutorial1 ${tutorial1_SRCS})
target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS})
install(TARGETS tutorial1  ${INSTALL_TARGETS_DEFAULT_ARGS})

Fùnkcëjô find_package() szëkô za paczétã jaczi żądôsz (w tim przëmiôrze KDE4) ë ùstawiô niechtërne zmieniwne co òpisëją môl w jaczim nalézc jidze nagówczi i biblioteczi paczétów. Tu mdzemë brëkòwelë zmieniwny KDE4_INCLUDES co trzëmô stegnã do nagłówkòwëch lopków dlô KDE4.

Żebë pòmóc kòmpilatorowi nalézc ne lopczi, dómë nã zmieniwną do fùnkcëji, co dodôwô nagłówczi KDE4 do stegnë szëkaniô za nagłówkama.

Dali më ùsôdzemë zmieniwną zwóną tutorial1_SRCS brëkùjąc fùnkcëji set(). W tim przëmiôrze më prosto dómë miono najégò jedurnégò zdrojowégò lopka.

Zôs dómë kde4_add_executable() abë ùsôdzëc zrëszeniowi lopk pòzwóny tutorial1 ze zdrojowich lopków wëpisónëch w zmieniwny tutorial1_SRCS. Pò temù, zlënkùjemë naji zrëszeniowi lopk do biblioteczi KDE4 kdeui library brëkùjącë target_link_libraries() ë zmieniwny KDE4_KDEUI_LIBS co ùsôdzonô bëła przez fùnkcëjã find_package(). Liniô naczinającô sã install zapisëjë domëslny cél "install" w Makefile.

Wëkònôj ë zrëszë

Mòżesz rãczno wëwòłac CMake:

mkdir build && cd build
cmake .. # Bôczë na ne dwa pùnktë - to nie fela, le òdwòłanié do ''katalogù wëżi".
make

Abò, żlë môsz ùstawioné òkrãżé jak je to òpisóné w Getting Started/Build/KDE4, mòżesz skòmpilowac kòd pòlétã:

cmakekde


Terôzkù zrëszë programã:

./tutorial1

Biéj dali

Terô mòżesz jic dali bë naùczëc so brëkòwaniô KXmlGuiWindow.