Python

So verwenden Sie PyQt QMessageBox

So verwenden Sie PyQt QMessageBox
Das Nachrichtenfeld wird in der GUI-Anwendung verwendet, um dem Benutzer notwendige Informationen bereitzustellen oder den Benutzer aufzufordern, basierend auf der Nachricht Maßnahmen zu ergreifen. Für jede GUI-Anwendung können vier Arten von Meldungsfeldern erstellt werden, darunter das Meldungsfeld mit Informationen, das Feld für Warnmeldungen, das Feld für kritische Meldungen und das Feld für Fragen. Das QMessageBox Klasse von PyQt wird in Python verwendet, um ein Meldungsfeld zu erstellen. Dieses Tutorial zeigt Ihnen, wie Sie mit der Klasse QMessageBox verschiedene Meldungsfelder erstellen.

Notwendige Methoden

Die Klasse QMessageBox verfügt über viele Methoden zum Erstellen verschiedener Arten von Meldungsfeldern. Einige der am häufigsten verwendeten Methoden der QMessageBox-Klasse werden im Folgenden beschrieben:

Methodennamen  Zweck
setTitle() Wird verwendet, um den benutzerdefinierten Titel anzuzeigen.
Text setzen() Wird verwendet, um den Text der Hauptnachricht einzustellen.
setDetailText() Wird verwendet, um ein Fenster mit einer Details-Schaltfläche anzuzeigen; Der Nachrichtentext wird angezeigt, nachdem der Benutzer auf die Schaltfläche geklickt hat.
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 als Standard festzulegen; die Taste gibt ein Klicksignal aus, wenn die Eingeben Taste ist gedrückt.
setEscapeButton() Wird verwendet, um eine beliebige Schaltfläche als Escape-Taste festzulegen. Die Taste gibt ein Klicksignal aus, wenn die Flucht Taste ist gedrückt.
setStandardButtons() Je nach Nachrichtentyp können verschiedene Standardschaltflächen in der Nachrichtenbox verwendet werden, z. B. OK, Ja, Nein, Abbrechen, Schließen usw.

QMessageBox-Nutzung

Die folgenden Abschnitte dieses Tutorials enthalten Beispiele, die Ihnen zeigen, wie Sie mit der QMessageBox-Klasse verschiedene Meldungsfelder erstellen.

Beispiel 1: Erstellen einer Informationsnachrichtenbox

Das folgende Skript erstellt ein einfaches Informationsfenster mit der Klasse QMessageBox. Diese Art von Nachrichtenbox bietet nur die Informationsnachricht für den Benutzer. OK ist die Standardschaltfläche im Nachrichtenfeld. Hier, QMessageBox.Information wird in der verwendet setIcon() Methode zum Anzeigen des Informationssymbols in der Nachrichtenbox.

# Erforderliche 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 auf
Super().__drin__()
# Erstellen Sie das Messagebox-Objekt
selbst.msg = QMessageBox()
# Setze das Informationssymbol
selbst.Nachricht.setIcon(QMessageBox.Information)
# Legen Sie die Hauptnachricht fest
selbst.Nachricht.setText("Die Aufgabe wurde erfolgreich abgeschlossen.")
# Setzt den Titel des Fensters
selbst.Nachricht.setWindowTitle("Informationsnachricht")
# Zeigen Sie die Nachrichtenbox an
selbst.Nachricht.Show()
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
Win = MessageWindow()
App.exec()

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

Beispiel 2: Erstellen Sie ein Warnmeldungsfeld

Das folgende Skript erstellt das Warnmeldungsfeld mithilfe der QMessageBox-Klasse. Diese Art von Meldungsfeld enthält die Warnmeldung für den Benutzer. Das Warnung wird in der verwendet setIcon() Methode zum Anzeigen des Warnsymbols im Meldungsfeld. Das OK und Stornieren Schaltflächen werden mit dem zum Nachrichtenfeld hinzugefügt setStandardButtons() Methode. Eine benutzerdefinierte Methode namens msgButton() ist in der Klasse definiert, um die Schaltfläche in der Meldungsbox zu verfolgen, auf die der Benutzer geklickt hat. Wenn der Benutzer auf das klickt OK Schaltfläche, dann der Text, 'OK-Taste ist gedrückt,' wird gedruckt; ansonsten der 'Abbrechen-Taste ist gedrückt'Text wird gedruckt.

# Erforderliche 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 auf
Super().__drin__()
# Erstellen Sie das Messagebox-Objekt
selbst.msgWarning = QMessageBox()
# Setzen Sie das Warnsymbol
selbst.msgWarnung.setIcon(QMessageBox.Warnung)
# Legen Sie die Hauptnachricht fest
selbst.msgWarnung.Text setzen("Name Variable ist undefiniert.")
# Legen Sie zwei Schaltflächen für die Nachrichtenbox fest
selbst.msgWarnung.setStandardButtons(QMessageBox.Okay | QMessageBox.Stornieren)
# Rufen Sie die benutzerdefinierte Methode auf, wenn die Schaltfläche angeklickt wurde
selbst.msgWarnung.SchaltflächeAngeklickt.verbinden (selbst.msgButton)
# Setzt den Titel des Fensters
selbst.msgWarnung.setWindowTitle("Warnmeldung")
# Zeigen Sie die Nachrichtenbox an
selbst.msgWarnung.Show()
# Funktion für die Tasten definieren
def msgButton(self, i):
wenn ich.text() == '&OK' :
print("OK-Taste ist gedrückt.")
sonst:
print("Abbrechen-Button ist gedrückt.")
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
Win = MessageWindow()
App.exec_()

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

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

Beispiel 3: Erstellen Sie a Frage Warnung Botschaft

Das folgende Skript erstellt das Fragenachrichtenfeld mithilfe der QMessageBox-Klasse. Diese Art von Nachrichtenfeld bietet dem Benutzer die Fragenachricht, um die bestimmte Aktion basierend auf der Entscheidung des Benutzers durchzuführen. Hier, QMessageBox.Frage wird in der verwendet setIcon() Methode zum Anzeigen des Fragesymbols im Nachrichtenfeld. Das Ja und Nein Schaltflächen werden mit dem zum Nachrichtenfeld hinzugefügt setStandardButtons() Methode. Das Nein button wird mit der setDefaultButton()-Methode als Standard-Button festgelegt. Eine benutzerdefinierte Methode namens msgButton() ist in der Klasse definiert, um die Schaltfläche in der Meldungsbox zu verfolgen, auf die der Benutzer geklickt hat.

# Erforderliche 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 auf
Super().__drin__()
# Erstellen Sie das Messagebox-Objekt
selbst.msgFrage = QMessageBox()
# Setzen Sie das Warnsymbol
selbst.msgFrage.setIcon(QMessageBox.Frage)
# Legen Sie die Hauptnachricht fest
selbst.msgFrage.setText("Möchten Sie fortfahren?")
# Legen Sie zwei Schaltflächen für die Nachrichtenbox fest
selbst.msgFrage.setStandardButtons(QMessageBox.Ja | QMessageBox.Nein)
selbst.msgFrage.setDefaultButton(QMessageBox.Nein)
# Rufen Sie die benutzerdefinierte Methode auf, wenn die Schaltfläche angeklickt wurde
selbst.msgFrage.SchaltflächeKlicken.verbinden (selbst.msgButton)
# Setzt den Titel des Fensters
selbst.msgFrage.setWindowTitle("Frage an den Benutzer stellen")
# Zeigen Sie die Nachrichtenbox an
selbst.msgFrage.Show()
# Funktion für die Tasten definieren
def msgButton(self, i):
wenn ich.text() == '&Ja' :
print("Die Aufgabe wird fortgesetzt…")
sonst:
print("Sie haben die Aufgabe abgebrochen.")
# App-Objekt erstellen und App ausführen
app = QApplication(sys.Argument)
Win = MessageWindow()
App.exec_()

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

Wenn der Benutzer auf das klickt Eingeben drücken, ohne eine Taste auszuwählen, dann wird die Nein Die Schaltfläche wird standardmäßig aktiviert und die folgende Ausgabe wird angezeigt:

Fazit

In diesem Tutorial wurden drei verschiedene Typen von Meldungsfeldern mit der Klasse QMessageBox erstellt created. 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.

So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...