So verwenden Sie PYQT QMessageBox

So verwenden Sie PYQT QMessageBox
Das Nachrichtenfeld wird in der GUI -Anwendung verwendet, um dem Benutzer die erforderlichen Informationen bereitzustellen oder den Benutzer zu bitten, Aktionen basierend auf der Nachricht zu ergreifen. Für jede GUI -Anwendung können vier Arten von Nachrichtenfeldern erstellt werden, einschließlich des Informationsmeldungsfelds, des Warnmeldungsfelds, des kritischen Nachrichtenfelds und des Fragebuchs -Nachrichtenfelds. Der QMessageBox PYQT -Klasse wird in Python verwendet, um ein Nachrichtenfeld zu erstellen. Dieses Tutorial zeigt Ihnen, wie Sie die QMessageBox -Klasse verwenden, um verschiedene Nachrichtenfelder zu erstellen.

Notwendige Methoden

Die QMessageBox -Klasse verfügt über viele Methoden zum Erstellen verschiedener Arten von Nachrichtenfeldern. Einige der am häufigsten verwendeten Methoden der QMessageBox -Klasse sind nachstehend beschrieben:

Methodennamen Zweck
settitle () Wird verwendet, um den benutzerdefinierten Titel anzuzeigen.
Text setzen() Wird verwendet, um den Text der Hauptnachricht festzulegen.
setDetailText () Wird verwendet, um ein Fenster mit einer Detail -Schaltfläche anzuzeigen; Der Meldungstext wird angezeigt, nachdem der Benutzer auf die Schaltfläche klickt.
setInformativetext Wird verwendet, um die zusätzliche Nachricht anzuzeigen.
seticon () Wird verwendet, um ein Symbol im Nachrichtenfeld basierend auf dem Nachrichtentyp festzulegen.
setWindowtitle () Wird verwendet, um den Titel des Nachrichtenfensters festzulegen.
setDefaultButton () Wird verwendet, um die Schaltfläche im Meldungsfeld Standard festzulegen. Die Schaltfläche löst ein geklickter Signal frei, wenn die Eingeben Taste wird gedrückt.
setSeScapeButton () Wird verwendet, um eine Schaltfläche so einzustellen, dass sie als Escape -Schlüssel funktioniert. Die Schaltfläche löst ein geklickter Signal frei, wenn die Fliehen Taste wird gedrückt.
setStandardbuttons () Verschiedene Standardschaltflächen können im Nachrichtenfeld basierend auf dem Nachrichtentyp verwendet werden, z. B. OK, Ja, Nein, Abbrechen, Schließen usw.

QmessageBox -Verwendung

In den folgenden Abschnitten dieses Tutorials werden Beispiele angezeigt.

Beispiel 1: Erstellen Sie ein Informationsmeldungsfeld

Das folgende Skript erstellt mit der QMessageBox -Klasse ein einfaches Informationsfeld -Nachrichtenfeld. Diese Art von Nachrichtenfeld bietet die Informationsnachricht nur für den Benutzer. OK ist die Standardtaste im Meldungsfeld. Hier, QMessageBox.Information wird in der verwendet seticon () Methode zum Anzeigen des Informationssymbols im Nachrichtenfeld.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, QMainWindow, QMessageBox
# Definieren Sie die Klasse, um eine Informationsnachricht anzuzeigen
Klasse MessageWindow (QMainWindow):
def __init __ (selbst):
# Rufen Sie den übergeordneten Konstruktor an
super().__drin__()
# Erstellen Sie das MessageBox -Objekt
selbst.msg = qmessagebox ()
# Legen Sie das Informationssymbol fest
selbst.Nachricht.seticon (QMessageBox.Information)
# Legen Sie die Hauptnachricht fest
selbst.Nachricht.setText ("Die Aufgabe wird erfolgreich abgeschlossen."))
# Setzen Sie den Titel des Fensters
selbst.Nachricht.setWindowtitle ("Informationsnachricht")
# Zeigen Sie das Meldungsfeld an
selbst.Nachricht.zeigen()
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
Win = MessageWindow ()
App.exec ()

Das folgende Nachrichtenfeld wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Beispiel 2: Erstellen Sie ein Warnmeldungsfeld

Das folgende Skript erstellt das Warnmeldungsfeld mit der QMessageBox -Klasse. Diese Art von Nachrichtenfeld enthält die Warnmeldung für den Benutzer. Der Warnung wird in der verwendet seticon () Methode zur Anzeige des Warnsymbols im Nachrichtenfeld. Der OK Und Stornieren Die Schaltflächen werden mit dem Meldungsfeld hinzugefügt setStandardbuttons () Methode. Eine benutzerdefinierte Methode genannt msgbutton () wird in der Klasse definiert, um die Schaltfläche im Meldungsfeld zu verfolgen, auf das vom Benutzer geklickt wurde. Wenn der Benutzer auf das klickt OK Schaltfläche, dann der Text 'OK -Taste wird gedrückt,'wird drucken; ansonsten der 'Die Abbrechen -Taste wird gedrückt'Text wird drucken.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, QMainWindow, QMessageBox
# Definieren Sie die Klasse, um eine Informationsnachricht anzuzeigen
Klasse MessageWindow (QMainWindow):
def __init __ (selbst):
# Rufen Sie den übergeordneten Konstruktor an
super().__drin__()
# Erstellen Sie das MessageBox -Objekt
selbst.msgWarning = qmessagebox ()
# Setzen Sie das Warnikon
selbst.MSGWARNING.seticon (QMessageBox.Warnung)
# Legen Sie die Hauptnachricht fest
selbst.MSGWARNING.Text setzen("Name Variable ist undefiniert."))
# Setzen Sie zwei Schaltflächen für das Meldungsfeld
selbst.MSGWARNING.setStandardbuttons (QMessageBox.Ok | QMessageBox.Stornieren)
# Rufen Sie die benutzerdefinierte Methode auf die Schaltfläche Klicken Sie auf
selbst.MSGWARNING.Buttonclicked.verbinden (Selbst.msgbutton)
# Setzen Sie den Titel des Fensters
selbst.MSGWARNING.setWindowtitle ("Warnmeldung")
# Zeigen Sie das Meldungsfeld an
selbst.MSGWARNING.zeigen()
# Funktion für die Tasten definieren
Def Msgbutton (Selbst, i):
wenn ich.text () == '& ok':
Print ("OK -Taste wird gedrückt."))
anders:
Print ("Abbrechen -Taste wird gedrückt."))
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
Win = MessageWindow ()
App.exec_ ()

Das folgende Nachrichtenfeld wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Wenn der Benutzer auf das klickt OK Taste wird die folgende Ausgabe angezeigt.

Beispiel 3: Erstellen a Frage Warnung Nachricht

Das folgende Skript erstellt das Fragen zum Fragenmeldungsfeld mit der QMessageBox -Klasse. Diese Art von Nachrichtenfeld bietet dem Benutzer die Fragemeldung, um die jeweilige Aktion basierend auf der Entscheidung des Benutzers zu ergreifen. Hier, QMessageBox.Frage wird in der verwendet seticon () Methode zur Anzeige des Fragensymbols im Nachrichtenfeld angezeigt. Der Ja Und NEIN Die Schaltflächen werden mit dem Meldungsfeld hinzugefügt setStandardbuttons () Methode. Der NEIN Die Schaltfläche wird mit der Methode setDefaultButton () als Standardtaste eingestellt. Eine benutzerdefinierte Methode genannt msgbutton () wird in der Klasse definiert, um die Schaltfläche im Meldungsfeld zu verfolgen, auf das vom Benutzer geklickt wurde.

# Notwendige Module importieren
Importsystem
von pyqt5.Qtwidgets importieren Qapplication, QMainWindow, QMessageBox
# Definieren Sie die Klasse, um eine Informationsnachricht anzuzeigen
Klasse MessageWindow (QMainWindow):
def __init __ (selbst):
# Rufen Sie den übergeordneten Konstruktor an
super().__drin__()
# Erstellen Sie das MessageBox -Objekt
selbst.msgquestion = qmessagebox ()
# Setzen Sie das Warnikon
selbst.msgquestion.seticon (QMessageBox.Frage)
# Legen Sie die Hauptnachricht fest
selbst.msgquestion.setText ("Möchten Sie fortfahren?"))
# Setzen Sie zwei Schaltflächen für das Meldungsfeld
selbst.msgquestion.setStandardbuttons (QMessageBox.Ja | QMessageBox.NEIN)
selbst.msgquestion.setDefaultButton (QMessageBox.NEIN)
# Rufen Sie die benutzerdefinierte Methode auf die Schaltfläche Klicken Sie auf
selbst.msgquestion.Buttonclicked.verbinden (Selbst.msgbutton)
# Setzen Sie den Titel des Fensters
selbst.msgquestion.setWindowtitle ("Frage an den Benutzer stellen")
# Zeigen Sie das Meldungsfeld an
selbst.msgquestion.zeigen()
# Funktion für die Tasten definieren
Def Msgbutton (Selbst, i):
wenn ich.text () == '& yes':
drucken ("Die Aufgabe geht weiter ...")
anders:
drucken ("Sie haben die Aufgabe abgesagt."))
# App -Objekt erstellen und die App ausführen
app = qapplication (sys.argv)
Win = MessageWindow ()
App.exec_ ()

Das folgende Nachrichtenfeld wird angezeigt, nachdem das obige Skript ausgeführt wurde.

Wenn der Benutzer auf das klickt Eingeben Schlüssel ohne Auswahl von Schaltflächen, dann die NEIN Die Schaltfläche wird standardmäßig aktiviert und die folgende Ausgabe wird angezeigt:

Abschluss

In diesem Tutorial wurden drei verschiedene Arten von Nachrichtenboxen mit der QMessageBox -Klasse erstellt. Hoffentlich hat Ihnen dieses Tutorial geholfen, die Verwendung dieser Klasse besser zu verstehen. Sie sollten jetzt in der Lage sein, ein Nachrichtenfeld für die PYQT -Anwendung zu erstellen.