Fertige Dialoge verwenden

Für einige komplexe Dialoge bietet uns Qt bereits Vorlagen, die wir auf Wunsch noch genauer anpassen, aber auch direkt über statische Methoden aufrufen können. Dialog-Objekte werden über die Methode QDialog::exec() angezeigt und ausgeführt. Sie haben wie die ebenfalls von QDialog abgeleitete Klasse QMessageBox eine eigene Event-Schleife. Trotzdem muss davor ein QApplication-Objekt erstellt werden, auch wenn dessen exec()-Methode nicht aufgerufen werden muss. Grundsätzlich gibt es 3 Methoden einen Dialog zu erstellen und anzuzeigen:

  • Dialog-Objekt erstellen → QDialog::exec() aufrufen → Ergebnis abfragen
  • Statische Methode aufrufen → Rückgabewert (Ergebnis) abfragen
  • Dialog-Objekt erstellen → Signal über open() mit einem Slot verbinden → Dialog ausführen → Ergebnis im Slot behandeln

Natürlich muss nach der Beendigung des Dialoges immer überprüft werden, ob der Benutzer überhaupt etwas eingegeben hat. Er hat schließlich immer die Möglichkeit den Dialog über einen Button oder die Titelleiste zu beenden. Dies kann entweder über das vom Dialog abgefragte Objekt (isValid(), isNull(), etc.), oder allgemein über den Dialog selbst geschehen (QDialog::result() muss QDialog::Accepted zurückliefern).
Anstatt die vielen verschiedenen Dialoge zu erklären, sollen hier primär die verschiedenen Funktionsweisen dargestellt werden. Alle nicht erwähnten Dialoge funktionieren nach dem gleichen Schema.

Verwendungsmethoden

Wie vorhin erwähnt, gibt es 3 Methoden der Verwendung:

Vordefinierte Dialoge

In den obigen Kapiteln wurde zwar der eine oder andere Dialog verwendet, aber es gibt noch einige mehr. Am besten nimmt man dafür die Dokumentation zur Hand.

Klasse Zweck
QDialog Basisklasse aller Dialoge
QColorDialog Auswahl einer Farbe
QErrorMessage Anzeigen von Fehlermeldungen
QFileDialog Öffnen und Speichern von Dateien
QFontDialog Auswahl einer Schriftart
QInputDialog Primitive Eingabe von Zahlen und Text
QPageSetupDialog Einrichtung einer Seite (Drucker)
QPrintDialog Einrichtung eines Druckers
QPrintPreviewDialog Druck-Vorschau
QProgressDialog Fortschritts-Anzeige
QWizard Mehrseitiger Dialog (zum Beispiel Installations-Wizard)