Seite 1 von 1

QMessageBox auslesen

Verfasst: Montag 22. Juli 2019, 17:29
von NewPython19
Hallo zusammen :D ,

ich arbeite an einem Projekt und setze QMessageBoxen ein, um Fehlermeldungen oder etc. anzuzeigen.
Ich habe eine QMessageBox, die nur den StandardButton "OK" hat.
Durch Betätigen dieses Buttons ("OK") schließt sich die QMessageBox und ein QMain Window soll sich öffnen.
Ich habe etwas rumgesucht aber nichts dazu gefunden. Hat jemand das schonmal gemacht oder eine Idee wie/ob das geht?

Liebe Grüße, :wink:
NewPython19

PS: Noch eine weitere kurze Frage: Wie kann man abfragen, ob ein QPushButton betätigt wurde?

Re: QMessageBox auslesen

Verfasst: Montag 22. Juli 2019, 17:55
von __blackjack__
@NewPython19: Wo ist denn das konkrete Problem? Ich sehe da erst einmal keines. Man zeigt halt die `QMessageBox` als modalen Dialog an und wenn der Aufruf von `exec_()` oder einer der statischen Methoden für die Standardnachrichten zurückkehrt, dann hat der Benutzer entweder OK geklickt oder das Fenster über das X in der Fensterleiste geschlossen. Das kann man am Rückgabewert unterscheiden.

Re: QMessageBox auslesen

Verfasst: Dienstag 23. Juli 2019, 06:18
von NewPython19
Meine Frage ist ja, wie ich das abfragen kann? Also die Syntax davon.

Re: QMessageBox auslesen

Verfasst: Dienstag 23. Juli 2019, 07:21
von Sirius3
Fang am besten mit einem Beispiel zu QMessageBox an, das Du überall im Netz finden kannst.
Mein erster Treffer war: https://pythonspot.com/pyqt5-messagebox/

Re: QMessageBox auslesen

Verfasst: Mittwoch 31. Juli 2019, 08:41
von Kirikkayis
Hey,

hier mal ein Beispiel das veranschaulichen soll wie soetwas funktioniert könnte:

Code: Alles auswählen

switch ( QMessageBox::warning( this, tr("Remove warning"),tr("Are you sure to connection %1?").arg( connID ),QMessageBox::Yes | QMessageBox::No ) )
                {
                case QMessageBox::Yes:
                {
                mainwindow->sqlConnections().remove( connID );
                break;
                }
                case QMessageBox::No:
                default:
                	break;
                }
Kurz erläutert:
Es wird in dem switch eine QMessageBox definiert (::warning, du kannst in der Doku nachlesen was es sonst noch so für Möglichkeiten gibt), desweiteren werden zwei Möglichkeiten definiert (Yes \ No).
In dem case wird dann überprüft was "geklickt" worden ist --> "Yes" ...remoce(connID) als beispiel. "No" --> break
...