Development/Tutorials/Using KXmlGuiWindow: Difference between revisions

    From KDE TechBase
    (Add prerequisites/what's next sections)
    (Replaced content with "This page was moved [https://develop.kde.org/docs/getting-started/main_window/ here]")
    Tag: Replaced
     
    (89 intermediate revisions by 24 users not shown)
    Line 1: Line 1:
    ==Abstract==
    This page was moved [https://develop.kde.org/docs/getting-started/main_window/ here]
    This tutorial carries on from [[Development/Tutorials/Programming_Tutorial_KDE_4/First_program|First Program Tutorial]] and will introduce the {{class|KMainWindow}} class.
     
    In the previous tutorial, the program caused a dialog box to pop up but were going to take steps towards a functioning application.
     
    In order to have a useful KMainWindow, we must sub class it. So we create two files, a <tt>MainWindow.cpp</tt> and a <tt>MainWindow.h</tt> which will contain our code.
     
    ==Prerequisites==
    * [[Development/Tutorials/Programming_Tutorial_KDE_4/First_program|Hello World Tutorial]]
     
    ==MainWindow Class==
    ===MainWindow.h===
    <code cppqt n>
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <KMainWindow>
    #include <KTextEdit>
     
    class MainWindow : public KMainWindow
    {
      public:
        MainWindow(QWidget *parent=0);
      private:
        KTextEdit* textArea;
    };
     
    #endif
    </code>
    First we Subclass KMainWindow on line 7 with with <tt>class MainWindow : public KMainWindow</tt>.
     
    The we declare the constructor with <tt>MainWindow(QWidget *parent=0);</tt>.
     
    And finally we declare a ponter 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.
    ===MainWindow.cpp===
    <code cppqt n>
    #include "mainwindow.h"
     
    MainWindow::MainWindow(QWidget *parent) : KMainWindow(parent)
    {
      textArea = new KTextEdit;
      setCentralWidget(textArea);
      setupGUI();
    }
    </code>
    First, of course, on line 1 we have to include the header file containing the class declaration.
     
    On line 5, we initialise our text editor with an object. Then on line 6 we use the built-in setCentralWidget() function which tells the KMainWindow what should appear in the central section of the window.
     
    Finally, KMainWindow::setupGUI() is called which does a lot of behind the scene's stuff and creates the default menu bars (Settings, Help).
    ==Back to main.cpp==
    In order to actually run this window, we need to add a few lines in main.cpp:
    ===main.cpp===
    <code cppqt n>
    #include <KApplication>
    #include <KAboutData>
    #include <KCmdLineArgs>
     
    #include "mainwindow.h"
     
    int main (int argc, char *argv[])
    {
      KAboutData aboutData( "tutorial2",
          "Tutorial2", "1.0", "A simple text area",
          KAboutData::License_GPL, "(c) 2006" );
      KCmdLineArgs::init( argc, argv, &aboutData );
     
      KApplication app;
      MainWindow* window = new MainWindow();
      window->show();
     
      return app.exec();
    }
    </code>
    The only new lines here (compared to Tutorial 1) are 14 and 15. On line 14, we create our MainWindow object and then on line 15, we display it.
    ==CMake==
    The best way to build the program is to use CMake. All that's changed since tutorial 1 is <tt>mainwindow.cpp</tt> has been added to the sources list.
    <code ini n>
    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})
    </code>
    ==Moving On==
    Now you can move on to [[Development/Tutorials/Programming_Tutorial_KDE_4/Using_KActions|using KActions]].

    Latest revision as of 14:32, 8 September 2020

    This page was moved here