Ausführen eines Dialogs

Alles rund um die Programmierung mit Qt
Antworten
hulk
Beiträge: 10
Registriert: 21. Februar 2006 11:41

Ausführen eines Dialogs

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Was verstehst Du an dem Beispiel denn nicht?
hulk
Beiträge: 10
Registriert: 21. Februar 2006 11:41

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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?
hulk
Beiträge: 10
Registriert: 21. Februar 2006 11:41

Beitrag 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
Antworten