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

From KDE TechBase
No edit summary
No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
 
{{TutorialBrowser|
{{TutorialBrowser|


Line 27: Line 27:


===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>
Przódë më zrobilë pòdklasã KXmlGuiWindow réze 7 w <tt>class MainWindow : public KXmlGuiWindow</tt>.
Przódë më zrobilë pòdklasã KXmlGuiWindow réze 7 w <tt>class MainWindow : public KXmlGuiWindow</tt>.


Line 52: Line 52:


===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>
W pierszi réze mùszimë dodac nagłówkòwi lopk zamëkający w se deklaracëjã klasë.
W pierszi réze mùszimë dodac nagłówkòwi lopk zamëkający w se deklaracëjã klasë.


Line 71: Line 71:
Żebë rëszëc ókno, nót je dodac czile rézów w 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>
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ò.
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ò.


Line 100: Line 100:
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>.
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>


===Kòmpilacëjô===
===Kòmpilacëjô===

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.

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

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <KXmlGuiWindow>
#include <KTextEdit>

class MainWindow : public KXmlGuiWindow
{
  public:
    MainWindow(QWidget *parent=0);
		
  private:
    KTextEdit* textArea;
};

#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

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
  textArea = new KTextEdit();
  setCentralWidget(textArea);
  setupGUI();
}

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

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

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

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