Seite 1 von 1

Ausführen eines Dialogs

Verfasst: 6. März 2006 19:58
von hulk
Hallo,

irgendwie steh ich auf dem Schlauch. Ich kann durch einen passenden Aufruf (z.B. QMessageBox::question(this, tr("wirklich?"), "echt?", QMessageBox::Yes, QMessageBox::No);) zwar einfache Benutzerdialoge ermöglichen, aber komplexere Sachen krieg ich irgendwie nicht hin. Wie kann ich in einem Programm einen zusammengesetzten Dialog (z.B. einen wie das Beispiel "Qt/4.1.1/examples/dialogs/configdialog") starten???

Hulk

Verfasst: 6. März 2006 21:43
von macman
Was verstehst Du an dem Beispiel denn nicht?

Verfasst: 6. März 2006 22:41
von hulk
nicht das Beispiel ist das Problem, sondern das Einbinden. Was muss ich tun, damit ich dieses (oder ein ähnliches) Konfigurationsfenster bekomme, wenn ich eine Aktion ausführe (z.B. Menupunkt wählen, Mausklick usw). Dh. wie erteile ich den Befehl, dass diese Konfigurationsmaske ausgeführt wird?
show()? exec()?


Hulk

Verfasst: 7. März 2006 07:28
von macman

Code: Alles auswählen

    ConfigDialog dialog;
    return dialog.exec();
Die erste Zeile erstellt den Dialog, die zweite führt ihn aus. Was verstehst Du daran nicht? Bauen wir es mal aus:

Code: Alles auswählen

void myClass::on_myButton_clicked()
{
    ConfigDialog dialog;
    int returnCode = dialog.exec();
    switch (returnCode)
    {
    case 0:
        do_irgendwas
        break;
    case 1:
        do_wasAnderes
        break;
    default:
        do_nichts;
    }
}
Sagt Dir das mehr?

Verfasst: 7. März 2006 09:24
von hulk
ja, genau das wollte ich wissen. Es hat anfänglich auch noch nicht geklappt. Ich habe immer einen "undefined reference"-Fehler bekommen. Aber einigem Suchen und Probieren ist mir aufgefallen, dass alle Sourcen und Header ja im .pro-File stehen müssen. Das tun sie natürlich nicht, wenn man die Dateien des Dialogs einfach in das Verzeichnis kopiert und die .pro-File nicht anpasst.
Aber jetzt funktioniert es.

Danke