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

    From KDE TechBase
    No edit summary
    No edit summary
     
    (4 intermediate revisions by 2 users not shown)
    Line 1: Line 1:
    {{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
     


    {{TutorialBrowser (de)|
    {{TutorialBrowser (de)|
    Line 25: Line 25:


    ===mainwindow.h===
    ===mainwindow.h===
    <code cppqt>
    <syntaxhighlight lang="cpp-qt">
    #ifndef MAINWINDOW_H
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    #define MAINWINDOW_H
    Line 42: Line 42:


    #endif
    #endif
    </code>
    </syntaxhighlight>
    Zunächst leiten wir in Zeile 7 eine Klasse von KXmlGuiWindow ab: <tt>class MainWindow : public KXmlGuiWindow</tt>.
    Zunächst leiten wir in Zeile 7 eine Klasse von KXmlGuiWindow ab: <tt>class MainWindow : public KXmlGuiWindow</tt>.


    Line 50: Line 50:


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


    Line 59: Line 59:
       setupGUI();
       setupGUI();
    }
    }
    </code>
    </syntaxhighlight>
    Als erstes müssen wir natürlich in Zeile 1 die zuvor erzeugte Header Datei einbinden, welche die Klassen-Dekleration beinhaltet.
    Als erstes müssen wir natürlich in Zeile 1 die zuvor erzeugte Header Datei einbinden, welche die Klassen-Dekleration beinhaltet.


    Line 69: Line 69:
    Um dieses Fenster wirklich zu erzeugen, müssen wir ein paar Zeilen in main.cpp ändern:
    Um dieses Fenster wirklich zu erzeugen, müssen wir ein paar Zeilen in main.cpp ändern:
    ===main.cpp===
    ===main.cpp===
    <code cppqt>
    <syntaxhighlight lang="cpp-qt">
    #include <KApplication>
    #include <KApplication>
    #include <KAboutData>
    #include <KAboutData>
    Line 92: Line 92:
       return app.exec();
       return app.exec();
    }
    }
    </code>
    </syntaxhighlight>
    Die einzigen neuen Zeilen (im Vergleich zu Kapitel 1) sind 18 und 19. In Zeile 17 wird das <tt>MainWindow</tt> Objekt erzeugt und in Zeile 19 dargestellt.
    Die einzigen neuen Zeilen (im Vergleich zu Kapitel 1) sind 18 und 19. In Zeile 17 wird das <tt>MainWindow</tt> Objekt erzeugt und in Zeile 19 dargestellt.


    Line 98: Line 98:
    Die beste Art das Programm zu erzeugen ist CMake. Die einzige Änderung zu Kapitel 1 ist, dass <tt>mainwindow.cpp</tt> zu den Quellen hinzugefügt wurde und aus <tt>tutorial1</tt> <tt>tutorial2</tt> wurde.
    Die beste Art das Programm zu erzeugen ist CMake. Die einzige Änderung zu Kapitel 1 ist, dass <tt>mainwindow.cpp</tt> zu den Quellen hinzugefügt wurde und aus <tt>tutorial1</tt> <tt>tutorial2</tt> wurde.
    ===CMakeLists.txt===
    ===CMakeLists.txt===
    <code ini>
    <syntaxhighlight lang="ini">
    project (tutorial2)
    project (tutorial2)


    Line 111: Line 111:
    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>


    ===Erzeugen===
    ===Erzeugen===
    Line 119: Line 119:


    ==Weiter geht's==
    ==Weiter geht's==
    Jetzt können Sie mit dem Kapitel [[Development/Tutorials/Using_KActions (de)|using KActions]] fortfahren.
    Jetzt können Sie mit dem Kapitel [[Development/Tutorials/Using_KActions (de)|KActions benutzen]] fortfahren.


    [[Category:C++]]
    [[Category:C++]]

    Latest revision as of 14:26, 14 July 2012


    KXmlGuiWindow
    Anleitungsserie   Anleitung für Anfänger
    Voriges Kapitel   Anleitung 1 - Hallo Welt
    Nächstes Kapitel   Anleitung 3 - KActions benutzen
    Weiterführende Texte  
    Navigation   Deutsche Startseite

    Zusammenfassung

    Dieses Kapitel führt das Kapitel First Program Tutorial fort und wird die Klasse KXmlGuiWindow einführen.

    Während im vorigen Kapitel das Programm nur einen Pop-up-Dialog erzeugt hat, werden wir jetzt in einem weiteren Schritt eine funktionierende Applikation erzeugen.

    KXmlGuiWindow benutzen

    Um ein benutzbares KXmlGuiWindow zu bekommen, müssen wir eine Unterklasse davon ableiten. Zu diesem Zweck werden zwei Dateien erzeugt, die den entsprechenden Code enthalten. Einmal mainwindow.cpp und zum anderen mainwindow.h. Unsere Klasse erbt von KXmlGuiWindow, weil sie XML benutzt, um zum Beispiel die Menüstruktur des Hauptprogramms zu beschreiben.

    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
    

    Zunächst leiten wir in Zeile 7 eine Klasse von KXmlGuiWindow ab: class MainWindow : public KXmlGuiWindow.

    Dann deklarieren wir den Konstruktor mit MainWindow(QWidget *parent=0);.

    Zuletzt deklarieren wir einen Zeiger auf das Objekt, welches den Hauptteil unseres Programms ausmacht. KTextEdit ist ein allgemeiner Richtext-Editor mit einigen KDE Spielereien wie cursor auto-hiding.

    mainwindow.cpp

    #include "mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
    {
      textArea = new KTextEdit;
      setCentralWidget(textArea);
      setupGUI();
    }
    

    Als erstes müssen wir natürlich in Zeile 1 die zuvor erzeugte Header Datei einbinden, welche die Klassen-Dekleration beinhaltet.

    In Zeile 5 wird der Text Editor mit einem Objekt initialisiert. Dann benutzen wir in Zeile 6 die eingebaute setCentralWidget() Funktion, die dem KXmlGuiWindow sagt, was in der zentralen Region des Fensters erscheinen soll.

    Zuletzt wird KXmlGuiWindow::setupGUI() aufgerufen. Diese Funktion macht eine ganze Menge im Hintergrund und erzeugt unter anderem die standardmäßigen Menüeinträge (Settings, Help).

    Zurück zu main.cpp

    Um dieses Fenster wirklich zu erzeugen, müssen wir ein paar Zeilen in main.cpp ändern:

    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("Ein einfacher Texteditor"),
          KAboutData::License_GPL,
          ki18n("Copyright (c) 2007 Developer") );
      KCmdLineArgs::init( argc, argv, &aboutData );
      
      KApplication app;
     
      MainWindow* window = new MainWindow();
      window->show();
    
      return app.exec();
    }
    

    Die einzigen neuen Zeilen (im Vergleich zu Kapitel 1) sind 18 und 19. In Zeile 17 wird das MainWindow Objekt erzeugt und in Zeile 19 dargestellt.

    CMake

    Die beste Art das Programm zu erzeugen ist CMake. Die einzige Änderung zu Kapitel 1 ist, dass mainwindow.cpp zu den Quellen hinzugefügt wurde und aus tutorial1 tutorial2 wurde.

    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})
    

    Erzeugen

    Um das Programm zu erzeugen, binden und ausführen, geben Sie

    cmake . && make && ./tutorial2
    

    ein

    Weiter geht's

    Jetzt können Sie mit dem Kapitel KActions benutzen fortfahren.