Development/Tutorials/KDE2/KHello/Tutorial 1

< Development‎ | Tutorials‎ | KDE2‎ | KHello
Revision as of 20:32, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "<code cppqt n>" to "<syntaxhighlight lang="cpp-qt" line>")
Jump to: navigation, search

Description

This is, as far as I know, the simplest possible KDE program.

Source code

The source code is very simple: <syntaxhighlight lang="cpp-qt" line> /************* khello.cc *******************/

  1. include <kapp.h>
  2. include <kmainwindow.h>

int main( int argc, char **argv ) {

 KApplication a( argc, argv, "khello" );
 KMainWindow *w = new KMainWindow();
 w->setGeometry(100,100,200,100);
 a.setMainWidget( w );
 w->show();
 return a.exec();

} /************* end of file *****************/

Explaining the code

Here is the commands explained: <syntaxhighlight lang="cpp-qt">

  1. include <kapp.h>
  2. include <kmainwindow.h>

The kapp.h file contain some basic code needed by all programs, and the kmainwindow.h file contains the class which should be used for all main windows in KDE programs. <syntaxhighlight lang="cpp-qt"> KApplication a(argc, argv); KMainWindow *w = new KMainWindow(); Create a KApplication object and a KMainWindow object. The KApplication object will contain all the basic code our program needs, and the KMainWindow object will be our main window. <syntaxhighlight lang="cpp-qt"> w->setGeometry(100,100,200,100); Move and resize the window. It is moved to coordinates (100, 100), and the size is changed to 200x100 (width x height). <syntaxhighlight lang="cpp-qt"> a.setMainWidget( w ); Our program needs to know where to find the main window. <syntaxhighlight lang="cpp-qt"> w->show(); Make the main window visible. <syntaxhighlight lang="cpp-qt"> return a.exec(); Execute the program.

Compiling

[on linux where KDEDIR and QTDIR contain the paths to where KDE and Qt are installed respectively]

[FreeBSD 5.x users may omit the -ldl]

g++ -c -I$KDEDIR/include -I$QTDIR/include -fno-rtti khello.cc
g++ -L$KDEDIR/lib -L$QTDIR/lib -lkdeui -lkdecore -lqt -ldl -o khello khello.o

Content is available under Creative Commons License SA 4.0 unless otherwise noted.