Fröhliche Weihnachten mit KDE
Adventskalender in C++
Wo ist der Inhalt?
Mit dem Programmieren sind wir nun fertig; wir müssen jedoch noch zwei Dateien anpassen, damit das Bild auf unseren KPushButtons und die 24 Textdateien gefunden und angezeigt werden. Dabei handelt es sich um Makefile.am-Dateien, die dafür sorgen, dass das Programm richtig installiert wird.
Zunächst verändern wir Makefile.am aus dem Projekt-Ordner adventskalender. Dort fügen wir direkt unter der Zeile SUBDIRS=$(TOPSUBDIRS)
myapppicdir=$(kde_datadir)/adventskalender myapppic_DATA=pics/dragon5.jpg
ein. Dadurch stellen wir sicher, dass unser Bild, was wir auf den KPushButton gezogen haben, nach dem Installieren des Programmes sichtbar ist: Es soll im Ordner pics gespeichert werden und dragon5.jpg heißen.
Nun widmen wir uns dem Makefile.am aus dem src-Verzeichnis, in dem sich all unsere Quelltexte befinden. Hier listen wir alle 24 Textdateien am Ende der Datei auf (Listing 3).
Listing 3
Wo befinden sich die Überraschungen?
myapppicdir = $(kde_datadir)/adventskalender
myapppic_DATA =aachener_printen.txt erste_schnee.txt spritzgebäck.txt \
advent.txt feuerzangenbowle.txt stille_nacht.txt \
adventskranz.txt knechtruprecht.txt tannengeflüster.txt \
adventsstollen.txt leise_rieselt.txt weihnachten.txt \
alle_jahre.txt makronen.txt weihnachtslied.txt \
berliner_brot.txt mandelhörnchen.txt weihnachtsmann.txt \
butterplätzchen.txt ros_entsprungen.txt weihnachtszeit.txt \
christkind.txt schneefloeckchen.txt winterwalde.txt
Wenn wir nun unser Programm mit Build / Build Project kompilieren und wie in Kasten 2 gezeigt installieren, ist unser Adventskalender fertig (Abbildung 8). Nur das Einpacken mit Geschenkpapier gestaltet sich ein wenig schwierig, denn wir können nicht einfach den Quelltext auf eine CD-ROM brennen oder Diskette packen.
Kasten 2: Spicken erlaubt!
Den vollständigen Quellcode des Adventskalenders samt Bild und Überraschungen finden Sie selbstverständlich auf der Heft-CD. Wenn Sie das Archiv adventskalender.tar.gz mit tar -xzvf entpacken, erwartet Sie im neu angelegten Verzeichnis adventskalender nicht nur der Sourcecode unterhalb von src, sondern auch die Projektdatei adventskalender.kdevelop, die Sie in KDevelop über Projekt / Open Project... laden.
Passen Sie die configure-Optionen unter Projekt / Project Options... / Configure Options wie im Text erwähnt an: Vom Wert für --prefix= hängt ab, ob Sie den Kalender mit Build / Install aus KDevelop heraus installieren dürfen: Steht hier ein systemweites Verzeichnis wie /opt/kde3, geht das nicht, da Sie in diesem Fall root-Rechte brauchen. Fügen Sie hingegen ein Unterverzeichnis Ihres eigenen Home-Verzeichnisses (etwa /home/pjung/adventskalender) an, können Sie den Kalender nach dem Installieren anschließend mit dem Kommandozeilenbefehl
KDEDIR=/home/pjung /adventskalender /home/pjung /adventskalender/bin/adventskalender &
testen. (Patricia Jung)
Geschenk einpacken
Das Konfigurieren und Kompilieren hat nämlich seine Spuren hinterlassen, von denen wir den Code zunächst befreien müssen. Dazu geben wir auf der Linux-Kommandozeile im adventskalender-Projekt-Verzeichnis den Befehl make clean ein.
Mit tar -czvf o. ä. zusammengepackt, bekommen die Beschenkten ein nettes Tar-Archiv, zu dem ein Begleitschreiben nichts schadet. Nach dem Auspacken müssen sie nämlich ins adventskalender-Verzeichnis gehen und
make -f Makefile.cvs
eingeben. Dieser Befehl generiert mit Hilfe unserer Makefile.am-Dateien Makefile.ins, die der nächste Schritt, das Konfigurieren, in richtige Makefiles umsetzt. Dem configure-Skript dürfen dabei Optionen übergeben werden, etwa
./configure --prefix=/opt/kde --with-qt-dir=/usr/local/qt
Bei diesen beiden Konfigurationsangaben handelt es sich um die gleichen, die wir bei der Projektdefinition in KDevelop eingegeben haben; da es sich auf den Rechnern der Beschenkten um andere Verzeichnisse handeln kann, gilt es aufzupassen.
Läuft configure ohne Probleme durch, setzt ein einfaches make den Kompilationsprozess in Gang. Ging auch hier alles glatt, kann root das Programm für alle Nutzer auf dem System mit
su -c "make install"
einspielen. Nun gibt es auch im K-Menü unter Utilities einen Eintrag, der zu unserem Adventskalender führt. Da bleibt uns nur noch, fröhlichen Advent zu wünschen!
Glossar
UTF-8
Das "8-Bit Unicode Transformation Format" ist eine Kodierung für Unicode-Zeichen. Dieser internationale Standard hat zum Ziel, einen Code für jedes Zeichen aller bekannten Schriftkulturen und Zeichensysteme festzulegen.
XML
"Extensible Markup Language", ein Standard zur Definition von Auszeichnungssprachen. Grundgedanke ist es, Daten und ihre Repräsentation zu trennen. So können verschiedene Anwendungen die gleiche Datenbasis im XML-Format nutzen, um dem jeweiligen Einsatzzweck angepasste, unterschiedliche Ansichten zu generieren.
virtuellen Funktionen
Weist ein Zeiger vom Typ einer Oberklasse auf Objekte einer davon abgeleiteten Subklasse, kommt von virtuellen Funktionen automatisch die Version aus der Unterklasse (statt der aus der Oberklasse) zum Einsatz.
Infos
[1] http://kdevelop.org/index.html?filename=download.html
[2] http://women.kde.org/articles/tutorials/kdevelop3/
[3] Patricia Jung: "Programmfenster auf Mausklick", LinuxUser 02/2002, S. 30 ff., http://www.linux-user.de/ausgabe/2002/02/030-designer/designer.html
[4] Qt-Referenz: http://doc.trolltech.com/
[5] KDE-Klassen-Dokumentation: http://developer.kde.org/documentation/library/cvs-api/
[6] KDE-Mirror der FH Heilbronn: ftp://ftp.fh-heilbronn.de/pub/mirrors/kde/stable/



