QMessageBox auslesen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
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?
Benutzeravatar
__blackjack__
User
Beiträge: 14000
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
NewPython19

Meine Frage ist ja, wie ich das abfragen kann? Also die Syntax davon.
Sirius3
User
Beiträge: 18251
Registriert: Sonntag 21. Oktober 2012, 17:20

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/
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

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