# Kapitel 13. Hinzufügen der Druckerfunktionalität

In diesem Kapitel werden wir Ihnen zeigen, wie einfach es ist, Druckerfunktionen mit Qt zu implementieren. Tatsächlich ist es nur eine Zeile Code, die wir schreiben müssen, aber wir werden verstehen, wer den Druckauftrag eigentlich ausführt. Wenn der Benutzer den "Drucken" Knopf in KScribble benutzt oder "Drucken" aus dem Dateimenü wählt, wird die `slotFilePrint()` Methode in `KScribbleApp` aufgerufen. Diese Methode prüft, welches Kindfenster gerade aktiv ist und erzeugt eine Instanz der Druckerklasse `QPrinter`. Dann ruft sie die Druckmethode des Widgets auf, nämlich `KScribbleView::print()`. Das Framework enthält bereits die Basisimplementation- was zeigt, daß Sie zum Drucken nur die Klasse `QPainter` verwenden müssen, die dann auf dem Drucker ausgibt. Diese Klasse ruft auch den Druckdialog auf.

Was wir hier tun müssen, ist `QPainter` Methoden zu benutzen, um das Pixmap des Dokuments zu drucken, das mit der Ansicht verbunden ist. Da `QPainter` bereits einen Satz an `drawPixmap()` Methoden anbietet, werden wir natürlich eine davon benutzen:

       1 void KScribbleView::print(QPrinter *pPrinter)
       2 {
       3   if (pPrinter->setup(this))
       4   {
       5     QPainter p;
       6     p.begin(pPrinter);
       7
       8     ///////////////////////////////
       9     // TODO: add your printing code here
      10 ->	p.drawPixmap(0,0,doc->buffer);
      11     ///////////////////////////////
      12     p.end();
      13   }
      14 }

Hier drucken wir unser gepuffertes Pixmap des Dokuments in den Offset 0,0 der Druckerseite. Das ist alles!

Sie können es einfach einmal ausprobieren- Sie können nun jede Grafik drucken, die KScribble öffnen kann.

Dies ist das Ende unserer Tour durch die Erstellung einer KDE 2 Anwendung. Sie können das Quellpaket von KScribble inklusive einer Erweiterung, die Ausschneiden, Kopieren, Einfügen und Wiederrufen sowie Drag&&;Drop Funktionen hinzufügt, hier finden:

$(KDEDIR)/share/apps/kdevelop/examples/kscribble-1.0.tar.gz

Das Beispieltarball ist lokal installiert und kann in Ihr Homerverzeichnis kopiert werden, wo Sie es auspacken und testen können. Nach dem Auspacken mit `tar zxvf kscribble-1.0.tar.gz` laden Sie das Projekt und rufen Sie "Automake und Autoconf" aus dem "Erstellen" Menü in KDevelop auf. Dann wählen Sie "Configure" aus dem gleichen Menü. Die Konfigurationen sind die meiner Installation von KDE 2 und Qt 2.1, Sie müssen sie also an Ihre Installation anpassen.

Der Anhang enthält ebenfalls den kompletten Quellcode für dieses Paket, so daß Sie ihn Online lesen können.