KDE-Programmierung |
KDE ist ein Desktop für Linux. Er basiert auf der Qt-Library der Firma Troll Tech. Die Programmierschnittstelle (API) ist an C++ gebunden.
Die zweite Variable ist hier vom Typ KTMainWindow und ist das Hauptfenster
des Programms. Diese wird ebenfalls zu Anfang des Programmes durch den
Konstruktor seiner Klasse erzeugt. Durch die Methode show() wird das
Fenster sichtbar.
KDE-Makefile
Um ein KDE-Programm zu übersetzen, werden die Pfade für die
include-Dateien und die Bibliotheken benötigt.
Basis für das Auffinden der Verzeichnisse ist die Environmentvariable
KDEDIR bzw QTDIR, die bei Installation des KDE gesetzt werden.
Darunter finden sich die Verzeichnisse include für die Headerdateien
und lib für die Bibliotheken. In dem folgenden kleinen Makefile
sind alle Angaben enthalten, die zur Übersetzung eines Minimalprogramms
notwendig ist.
INCDIR = -I$(KDEDIR)/include -I$(QTDIR)/include
CXXFLAGS = -g -Wall $(INCDIR)
LIBDIR = -L$(KDEDIR)/lib -L$(QTDIR)/lib -L/usr/X11R6/lib
LIBS = -lkdeui -lkdecore -lqt -lXext -lX11
# Die wirklichen Objekte des Programms
all: hello
%.o: %.cpp
gcc -c $(CXXFLAGS) -o $@ $<
hello: hello.o
gcc -o hello hello.o $(LIBDIR) $(LIBS)
Rahmen für ein KDE-Programm
Zwei Variablen sind für das KDE-Programm wichtig. Die Variable app als
Applikationsvariable wird mit den Aufrufparametern des Programms erzeugt.
Dabei wird der Konstruktor von KApplication aufgerufen. Mit dem Aufruf
der Methode exec() wird das Programm gestartet und bearbeitet die
Ereignisse die durch den Anwender ausgelöst werden.
#include <kapp.h>
#include <ktmainwindow.h>
#include <qlabel.h>
int main(int argc, char **argv)
{
KApplication app(argc, argv);
KTMainWindow *top = new KTMainWindow();
createMenu(&app, top); // siehe unten
QLabel *text = new QLabel(i18n("Hello World"), top);
top->setView(text);
top->show();
return app.exec();
}
Die Funktion createMenu ist eine eigene Funktion, die den
Menübaum für das Programm erzeugt wird unter
Menüs beschrieben.
Als Inhalt des Hauptfensters wird ein Label verwendet. Ein Label ist ein
Kontrollelement, das einen Text anzeigt.
Borkner-Delcarlo, Olaf: KDE 1.1 programmieren und anwenden.
2. Aufl., Bonn: MITP-Verlag, 1999.
Menüs
Die Klasse QPopupMenu realisiert ein Klappmenü dar, das in die
Menüleiste (menubar) des Hauptfensters eingefügt wird.
In die Klappmenüs werden Menüpunkte (item) mit der Methode
insertItem eingefügt.
#include <kmenubar.h>
#include <qkeycode.h> // ab KDE 2.0 nicht mehr notwendig
void createMenu(KApplication *papp, KTMainWindow *top)
{
QPopupMenu *fpop = new QPopupMenu();
fpop->insertItem(i18n("&Quit"), papp, SLOT(quit()), CTRL + Key_X);
// Ab KDE 2.0: Qt::CTRL + Qt::Key_X
top->menuBar()->insertItem(i18n("&File"), fpop);
// Der Separator sorgt dafuer, dass das Help rechts erscheint
top->menuBar()->insertSeparator();
// Das Helpmenue ist Standard. Es wird von der Applikation abgeleitet
QPopupMenu *hpop = papp->getHelpMenu(TRUE,
i18n("Hello World\na program brought to you by\nArnold Willemer"));
top->menuBar()->insertItem(i18n("&Help"), hpop);
}
Literatur
Lehner, Burkhard: KDE- und Qt-Programmierung. Addison-Wesley, 1999.
Thiem, Uwe: KDE Programmierung. Poing: Franzis, 1999.
Verweise ins Internet
http://www.kde.org
| Homepage | (C) Copyright 1999 Arnold Willemer |