(starting kashubian translation for this topic)
 
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
+
 
 
{{TutorialBrowser|
 
{{TutorialBrowser|
  
series=Beginner Tutorial|
+
series=Spòdlowi ùczbòwnik|
  
name=How To Use KXmlGuiWindow|
+
name=Jak brëkòwac KXmlGuiWindow|
  
pre=[[Development/Tutorials/First_program|Tutorial 1 - Hello World]]|
+
pre=[[Development/Tutorials/First_program|Ùczba 1 - Witôj swiece]]|
  
next=[[Development/Tutorials/Using_KActions|Tutorial 3 - KActions and XMLGUI]]|  
+
next=[[Development/Tutorials/Using_KActions|Ùczba 3 - KActions ë XMLGUI]]|  
  
 
reading={{class|KXmlGuiWindow}}
 
reading={{class|KXmlGuiWindow}}
Line 24: Line 24:
 
{{class|KXmlGuiWindow}} dotëgòwùje fùl widok przédnégò òkna z lëstwą menu, nôrządzów ë statusa a téż przédnym placã w centróm dlô wiôldżégò widżetu. Wiele aplikacëjów wëdostôwô z ti klasë, ga na prosti ôrt definiëje òna widok menu, lëstwë nôrzãdzów lopkach XML (na technologija zwóna je XMLGUI). Nie mdzëmë brëkòwelë XMLGUI w '''tim''' ùczbòwnikù, ale pòznómë gò w jednym z pòstãpnëch.
 
{{class|KXmlGuiWindow}} dotëgòwùje fùl widok przédnégò òkna z lëstwą menu, nôrządzów ë statusa a téż przédnym placã w centróm dlô wiôldżégò widżetu. Wiele aplikacëjów wëdostôwô z ti klasë, ga na prosti ôrt definiëje òna widok menu, lëstwë nôrzãdzów lopkach XML (na technologija zwóna je XMLGUI). Nie mdzëmë brëkòwelë XMLGUI w '''tim''' ùczbòwnikù, ale pòznómë gò w jednym z pòstãpnëch.
  
In order to have a useful KXmlGuiWindow, we must subclass it. So we create two files, a <tt>mainwindow.cpp</tt> and a <tt>mainwindow.h</tt> which will contain our code.
+
Żebë miec jaczi pòżëtk z KXmlGuiWindow mùszimëzrobic ji pòdklasã. Dlôtë téż ùsôdzoné mómë dwa lopczi: <tt>mainwindow.cpp</tt> ë <tt>mainwindow.h</tt> z taczim kòdã.
  
 
===mainwindow.h===
 
===mainwindow.h===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#ifndef MAINWINDOW_H
 
#ifndef MAINWINDOW_H
 
#define MAINWINDOW_H
 
#define MAINWINDOW_H
Line 44: Line 44:
  
 
#endif
 
#endif
</code>
+
</syntaxhighlight>
First we Subclass KXmlGuiWindow on line 7 with <tt>class MainWindow : public KXmlGuiWindow</tt>.
+
Przódë më zrobilë pòdklasã KXmlGuiWindow réze 7 w <tt>class MainWindow : public KXmlGuiWindow</tt>.
  
Then we declare the constructor with <tt>MainWindow(QWidget *parent=0);</tt>.
+
Dali mómë zadeklarowóné kònstruktor z <tt>MainWindow(QWidget *parent=0);</tt>.
  
And finally we declare a pointer to the object that will make up the bulk of our program. {{class|KTextEdit}} is a generic richtext editor with some KDE niceties like cursor auto-hiding.
+
Kù reszce, deklarëjemë wskazywôcz do òbiektu, jaczi je przédnym w naji programie. {{class|KTextEdit}} je wbùdowónëm bòkadnym, tekstowim editorã.
  
 
===mainwindow.cpp===
 
===mainwindow.cpp===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#include "mainwindow.h"
 
#include "mainwindow.h"
  
Line 61: Line 61:
 
   setupGUI();
 
   setupGUI();
 
}
 
}
</code>
+
</syntaxhighlight>
First, of course, on line 1 we have to include the header file containing the class declaration.
+
W pierszi réze mùszimë dodac nagłówkòwi lopk zamëkający w se deklaracëjã klasë.
  
On line 5, we initialise our text editor with an object. Then on line 6 we use KXmlGuiWindow's built-in setCentralWidget() function which tells the KXmlGuiWindow what should appear in the central section of the window.
+
W piąti réze, jinicjalizëjemë nasz tekstowi editor z òbiektã. Dali w réze szósti brëkùjemë wbùdowóny fùnkcëji setCentralWidget() z KXmlGuiWindow jaka gôdô KXmlGuiWindow co mô wëskrzënic sã w cetralny sekcëji òkna.
  
Finally, KXmlGuiWindow::setupGUI() is called which does a lot of behind-the-scenes stuff and creates the default menu bars (Settings, Help).
+
Na kùńcu wëwòłónô je fùnkcëjô KXmlGuiWindow::setupGUI(), chtërna robi wiele dobri, ale niewidoczny robòtë ë ùsôdzô domëslną lëstwą menu (Ùstawë, Pòmòc).
  
==Back to main.cpp==
+
==Nazôd do main.cpp==
In order to actually run this window, we need to add a few lines in main.cpp:
+
Żebë rëszëc ókno, nót je dodac czile rézów w main.cpp:
 
===main.cpp===
 
===main.cpp===
<code cppqt n>
+
<syntaxhighlight lang="cpp-qt" line>
 
#include <KApplication>
 
#include <KApplication>
 
#include <KAboutData>
 
#include <KAboutData>
Line 94: Line 94:
 
   return app.exec();
 
   return app.exec();
 
}
 
}
</code>
+
</syntaxhighlight>
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.
+
Nowé rézë tuwò (w przërównanim do Ùczbë 1) to 5, 18 ë 19. W réze 18 ùsadzamë nasz òbiekt MainWindow a w 19 wëskrzëniwómë gò.
  
 
==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>.
+
Nôlepi zbòdowac programã brëkùjąc CMake. Wszëtkò co je zmienioné w przërównanim do pierszi ùczbë to to, że <tt>mainwindow.cpp</tt> òstało dodóné do lëstë zdrojów a téż nôdpis  <tt>tutorial1</tt> to terô <tt>tutorial2</tt>.
 
===CMakeLists.txt===
 
===CMakeLists.txt===
<code ini n>
+
<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})
</code>
+
</syntaxhighlight>
  
===Compile it===
+
===Kòmpilacëjô===
To compile, link and run it, use:
+
Abë skòmpilowac kòd, zlënkòwac ë zrëszëc, ùżëjë:
 
  mkdir build && cd build
 
  mkdir build && cd build
 
  cmake ..
 
  cmake ..
Line 122: Line 122:
 
  ./tutorial2
 
  ./tutorial2
  
==Moving On==
+
==Biéj dali==
Now you can move on to [[Development/Tutorials/Using_KActions|using KActions]].
+
Terô mòżesz jic dali do [[Development/Tutorials/Using_KActions|ùżëcô KActions]].
  
 
[[Category:C++]]
 
[[Category:C++]]

Latest revision as of 13:10, 18 July 2012

Jak brëkòwac KXmlGuiWindow
Tutorial Series   Spòdlowi ùczbòwnik
Previous   Ùczba 1 - Witôj swiece
What's Next   Ùczba 3 - KActions ë XMLGUI
Further Reading   KXmlGuiWindow

Òpis

Nen ùczbòwnik je kòntinuacją negò First Program Tutorial ë wprowadzô klasã KXmlGuiWindow.

W pòprzédnym ùczbòwnikù, programa wëskrzëniwała dialogòwi òkno, ale terô më chcemë jic kąsk dali do fùnkcjonujący aplikacëji.

Introtokdetutorial2.png

KXmlGuiWindow

KXmlGuiWindow dotëgòwùje fùl widok przédnégò òkna z lëstwą menu, nôrządzów ë statusa a téż przédnym placã w centróm dlô wiôldżégò widżetu. Wiele aplikacëjów wëdostôwô z ti klasë, ga na prosti ôrt definiëje òna widok menu, lëstwë nôrzãdzów lopkach XML (na technologija zwóna je XMLGUI). Nie mdzëmë brëkòwelë XMLGUI w tim ùczbòwnikù, ale pòznómë gò w jednym z pòstãpnëch.

Żebë miec jaczi pòżëtk z KXmlGuiWindow mùszimëzrobic ji pòdklasã. Dlôtë téż ùsôdzoné mómë dwa lopczi: mainwindow.cpp ë mainwindow.h z taczim kòdã.

mainwindow.h

 1 #ifndef MAINWINDOW_H
 2 #define MAINWINDOW_H
 3 
 4 #include <KXmlGuiWindow>
 5 #include <KTextEdit>
 6 
 7 class MainWindow : public KXmlGuiWindow
 8 {
 9   public:
10     MainWindow(QWidget *parent=0);
11 		
12   private:
13     KTextEdit* textArea;
14 };
15 
16 #endif

Przódë më zrobilë pòdklasã KXmlGuiWindow réze 7 w class MainWindow : public KXmlGuiWindow.

Dali mómë zadeklarowóné kònstruktor z MainWindow(QWidget *parent=0);.

Kù reszce, deklarëjemë wskazywôcz do òbiektu, jaczi je przédnym w naji programie. KTextEdit je wbùdowónëm bòkadnym, tekstowim editorã.

mainwindow.cpp

1 #include "mainwindow.h"
2 
3 MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
4 {
5   textArea = new KTextEdit();
6   setCentralWidget(textArea);
7   setupGUI();
8 }

W pierszi réze mùszimë dodac nagłówkòwi lopk zamëkający w se deklaracëjã klasë.

W piąti réze, jinicjalizëjemë nasz tekstowi editor z òbiektã. Dali w réze szósti brëkùjemë wbùdowóny fùnkcëji setCentralWidget() z KXmlGuiWindow jaka gôdô KXmlGuiWindow co mô wëskrzënic sã w cetralny sekcëji òkna.

Na kùńcu wëwòłónô je fùnkcëjô KXmlGuiWindow::setupGUI(), chtërna robi wiele dobri, ale niewidoczny robòtë ë ùsôdzô domëslną lëstwą menu (Ùstawë, Pòmòc).

Nazôd do main.cpp

Żebë rëszëc ókno, nót je dodac czile rézów w main.cpp:

main.cpp

 1 #include <KApplication>
 2 #include <KAboutData>
 3 #include <KCmdLineArgs>
 4 
 5 #include "mainwindow.h"
 6 
 7 int main (int argc, char *argv[])
 8 {
 9   KAboutData aboutData( "tutorial2", 0,
10       ki18n("Tutorial 2"), "1.0",
11       ki18n("A simple text area"),
12       KAboutData::License_GPL,
13       ki18n("Copyright (c) 2007 Developer") );
14   KCmdLineArgs::init( argc, argv, &aboutData );
15   
16   KApplication app;
17  
18   MainWindow* window = new MainWindow();
19   window->show();
20 
21   return app.exec();
22 }

Nowé rézë tuwò (w przërównanim do Ùczbë 1) to 5, 18 ë 19. W réze 18 ùsadzamë nasz òbiekt MainWindow a w 19 wëskrzëniwómë gò.

CMake

Nôlepi zbòdowac programã brëkùjąc CMake. Wszëtkò co je zmienioné w przërównanim do pierszi ùczbë to to, że mainwindow.cpp òstało dodóné do lëstë zdrojów a téż nôdpis tutorial1 to terô tutorial2.

CMakeLists.txt

 1 project (tutorial2)
 2 
 3 find_package(KDE4 REQUIRED)
 4 include_directories(${KDE4_INCLUDES})
 5 
 6 set(tutorial2_SRCS 
 7   main.cpp
 8   mainwindow.cpp
 9 )
10 
11 kde4_add_executable(tutorial2 ${tutorial2_SRCS})
12 target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})

Kòmpilacëjô

Abë skòmpilowac kòd, zlënkòwac ë zrëszëc, ùżëjë:

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

Biéj dali

Terô mòżesz jic dali do ùżëcô KActions.


This page was last edited on 18 July 2012, at 13:10. Content is available under Creative Commons License SA 4.0 unless otherwise noted.