Difference between revisions of "Development/Tutorials/Using KXmlGuiWindow"

(Second introductory tutorial for beginner KDE programmers)
 
(Replaced content with "This page was moved [https://develop.kde.org/docs/getting-started/main_window/ here]")
Tag: Replaced
 
(90 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.
 
 
 
==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>
 

Latest revision as of 14:32, 8 September 2020

This page was moved here


This page was last edited on 8 September 2020, at 14:32. Content is available under Creative Commons License SA 4.0 unless otherwise noted.