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

    From KDE TechBase
    No edit summary
    m (Text replace - "<code cppqt n>" to "<syntaxhighlight lang="cpp-qt" line>")
    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 52: Line 52:


    ===mainwindow.cpp===
    ===mainwindow.cpp===
    <code cppqt n>
    <syntaxhighlight lang="cpp-qt" line>
    #include "mainwindow.h"
    #include "mainwindow.h"


    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>

    Revision as of 20:32, 29 June 2011


    Development/Tutorials/Using_KXmlGuiWindow

    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

    <syntaxhighlight lang="cpp-qt" line>

    1. ifndef MAINWINDOW_H
    2. define MAINWINDOW_H
    1. include <KXmlGuiWindow>
    2. include <KTextEdit>

    class MainWindow : public KXmlGuiWindow {

     public:
       MainWindow(QWidget *parent=0);
    
     private:
       KTextEdit* textArea;
    

    };

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

    <syntaxhighlight lang="cpp-qt" line>

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

    <syntaxhighlight lang="cpp-qt" line>

    1. include <KApplication>
    2. include <KAboutData>
    3. include <KCmdLineArgs>
    1. 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.