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:
QDialog::exec()
aufrufen → Ergebnis abfragenopen()
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.
Wie vorhin erwähnt, gibt es 3 Methoden der Verwendung:
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) |