Home / LinuxUser / 2003 / 12 / Adventskalender in C++

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Abbildung 8: Hinter diesem Törchen verbirgt sich ein Gedicht

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.

Der Autor

Frauke Oster studiert Angewandte Informatik an der Fachhochschule Südwestfalen, engagiert sich in ihrer Freizeit für das Projekt "KDE Women" und programmiert an Kivio.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...