QT: Wizard-Modus möglich und Dialog in Dialog
-
Hi,
1:
gibt es bei QT auch eine Möglichkeit einen Application-Wizard zu erstellen? Ähnlich wie man es bei der Installation von Programmen kennt.2:
Gibt es bei QT auch eine Möglichkeit einen Dialog innerhalb eines anderen Dialogs anzuzeigen -> z.B. das ein StaticField den einen Dialog beinhaltet? Ich möchte gern einen Dialog mit 5 Buttons erstellen und wenn der User auf einen dieser Buttons klickt soll der Unter-Dialog in diesem StaticField angezeigt werden. In diesen Unter-Dialogs kann der User Einstellungen vornehmen, welche erst verloren gehen sollen, wenn der Maindialog geschlossen wird. Sprich wird von einem Subdialog zum nächsten gesprungen sollen die Subdialoge nur invisible sein aber nicht geschlossen werden.Gruß
Jens
-
rtfm
http://doc.qt.nokia.com/4.7/qwizard.html
http://doc.qt.nokia.com/4.7/qstackedwidget.html
Du kannst "Unterdialoge" beliebig definieren und zB in nem Slot der an den Button connected wird aufpoppen lassen (als seperates Fenster) oder visible machen (im selben Fenster). Wenn du Sachen speichern willst bietet es sich an einen QDialog-Member zu halten der einfach im Konstructor (oder beim ersten ausführen)
if (! myMemberDialog) setupDialog(); // myMember in der initListe mit 0 initialisieren - nix static
eine entsprechende Initmethode aufruft. Wenn du den Dialog schliesst, hide(st) du ihn einfach - wenn der Dick ist, lager ihn in ne eigene Klasse aus ansonsten reicht es evtl. entsprechende Member für den Dialog vorzuhalten die du abfragen kannst (
if (myMemberDialog) machwasMitDialogMember()
).
-
danke für die Hints. Das mit dem Wizard funktioniert, aber wie kann ich diesen in einem Dialog anzeigen lassen (nicht in einem extra-Dialog)???
Hab in meinem Dialog ein QWidget installiert. Kann ich in diesem den Wizard darstellen lassen? Kannst du mir hier ein paar Tipps geben, wie ich hier vorgehen muss?
QSubdialog::QSubdialog(QWidget *parent) : QDialog(parent) { ui.setupUi(this); }
QSubDialog soll diesen Wizard beinhalten. Der Name vom QWidget ist m_WizardDialog.
Gruß
Jens
-
also der Wizard soll in einem HauptDialog eingebettet sein - kein Popup auch kein Close() und keine Border... Geht das überhaupt? Im QT Designer finde ich keine Möglichkeit einen Dialog ohne close-box und Border zu erstellen...
-
Jens Krieger schrieb:
also der Wizard soll in einem HauptDialog eingebettet sein - kein Popup auch kein Close() und keine Border... Geht das überhaupt? Im QT Designer finde ich keine Möglichkeit einen Dialog ohne close-box und Border zu erstellen...
Also, evtl. musst du hier was eigenes Stricken. Da du ja keinen Standard Dialog haben willst, ist es wohl sinnvoll sich gedanken zu machen, was die benötigten Eigenschaften deines Dialoges sind.
Für solche speziellen Anforderungen ist der Designer meistens dann auch nicht geeignet, sondern man muss entsprechend eine eigene Klasse erstellen, welche die benötigten Eigenschaften hat.
In deinem Fall könnte man z.b. von QWidget oder einer geeigneten Unterklasse davon ableiten, und dann die notwendigen Eigenschaften implementieren.