In diesem Artikel besprechen wir das Message Box Widget des PyQT5-Moduls. Es wird verwendet, um die Meldungsfelder anzuzeigen. PyQt5 ist eine Bibliothek, die zum Erstellen einer GUI mit dem Qt-GUI-Framework verwendet wird. Qt ist ursprünglich in C++ geschrieben, kann aber in Python verwendet werden. Die neueste Version von PyQt5 kann mit dem folgenden Befehl installiert werden:

pip install PyQt5

Was ist eine Nachrichtenbox?

Meldungsfelder werden normalerweise verwendet, um dem Benutzer eine kleine Information mitzuteilen. Es gibt Benutzern ein Popup-Fenster, das nicht übersehen werden kann, um zu vermeiden, dass wichtige Fehler und Informationen von den Benutzern übersehen werden, und in einigen Fällen kann der Benutzer nicht fortfahren, ohne das Meldungsfeld zu bestätigen.

Basierend auf den Anwendungen gibt es vier Arten von Nachrichtenboxen. Im Folgenden finden Sie die Syntax zum Erstellen eines Meldungsfelds. Für alle Boxen muss eine Instanziierung durchgeführt werden.

Syntax:

msg_box_name = QMessageBox() 

Nun wird je nach Anforderung eine entsprechende Meldungsbox erstellt.

Arten von Nachrichtenboxen

Informationsmeldungsfeld

Diese Art von Meldungsfeld wird verwendet, wenn zugehörige Informationen an den Benutzer weitergegeben werden müssen.

Syntax:

msg_box_name.setIcon(QMessageBox.Information) 

Meldungsfeld für Fragen

Dieses Nachrichtenfeld wird verwendet, um eine Antwort von einem Benutzer bezüglich einer auszuführenden Aktivität oder Aktion zu erhalten.

Syntax:

msg_box_name.setIcon(QMessageBox.Frage)



Warnmeldungsfeld

Dies löst eine Warnung bezüglich der Aktion aus, die der Benutzer ausführen wird.

Syntax:

msg_box_name.setIcon(QMessageBox.Warnung)

Feld für kritische Meldungen

Dies wird häufig verwendet, um die Meinung des Benutzers zu einer kritischen Aktion einzuholen.  

Syntax:

msg_box_name.setIcon(QMessageBox.Kritisch)

Erstellen einer einfachen Message Box mit PyQt5

Um nun ein Programm zu erstellen, das ein Meldungsfeld erstellt, importieren Sie zunächst alle erforderlichen Module und erstellen ein Widget mit vier Schaltflächen. Wenn Sie auf eine dieser Schaltflächen klicken, wird ein Meldungsfeld generiert.  

Ordnen Sie nun jeder Schaltfläche ein Meldungsfeld zu, das angezeigt wird, wenn auf die entsprechende Schaltfläche geklickt wird. Instanziieren Sie dazu zunächst ein Meldungsfeld und fügen Sie ein erforderliches Symbol hinzu. Legen Sie nun geeignete Attribute für den zu erzeugenden Pop fest. Fügen Sie außerdem Schaltflächen hinzu, um mit Standardmechanismen umzugehen.

Da unten ist die vollständige Implementierung.

Programm:

Python

#import libraries
import sys
from PyQt5.QtWidgets import *
  
  
def window():
        # create pyqt5 app
    app = QApplication(sys.argv)
    w = QWidget()
  
    # create buttons
  
    # b1- Information button
    b1 = QPushButton(w)
    b1.setText("Information")
    b1.move(45, 50)
  
    # b2- Warning button
    b2 = QPushButton(w)
    b2.setText("Warning")
    b2.move(150, 50)
  
    # b3- Question button
    b3 = QPushButton(w)
    b3.setText("Question")
    b3.move(50, 150)
  
    # b4- Critical button
    b4 = QPushButton(w)
    b4.setText("Critical")
    b4.move(150, 150)
  
    # declaring command when button clicked
    b1.clicked.connect(show_info_messagebox)
    b2.clicked.connect(show_warning_messagebox)
    b3.clicked.connect(show_question_messagebox)
    b4.clicked.connect(show_critical_messagebox)
  
    # setting title of the window
    w.setWindowTitle("PyQt MessageBox")
      
    # showing all the widgets
    w.show()
      
    # start the app
    sys.exit(app.exec_())
  
  
def show_info_messagebox():
    msg = QMessageBox()
    msg.setIcon(QMessageBox.Information)
  
    # setting message for Message Box
    msg.setText("Information ")
      
    # setting Message box window title
    msg.setWindowTitle("Information MessageBox")
      
    # declaring buttons on Message Box
    msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
      
    # start the app
    retval = msg.exec_()
  
  
def show_warning_messagebox():
    msg = QMessageBox()
    msg.setIcon(QMessageBox.Warning)
  
    # setting message for Message Box
    msg.setText("Warning")
      
    # setting Message box window title
    msg.setWindowTitle("Warning MessageBox")
      
    # declaring buttons on Message Box
    msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
      
    # start the app
    retval = msg.exec_()
  
  
def show_question_messagebox():
    msg = QMessageBox()
    msg.setIcon(QMessageBox.Question)
  
    # setting message for Message Box
    msg.setText("Question")
      
    # setting Message box window title
    msg.setWindowTitle("Question MessageBox")
      
    # declaring buttons on Message Box
    msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
      
    # start the app
    retval = msg.exec_()
  
  
def show_critical_messagebox():
    msg = QMessageBox()
    msg.setIcon(QMessageBox.Critical)
  
    # setting message for Message Box
    msg.setText("Critical")
      
    # setting Message box window title
    msg.setWindowTitle("Critical MessageBox")
      
    # declaring buttons on Message Box
    msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
      
    # start the app
    retval = msg.exec_()
  
if __name__ == '__main__':
    window()

Ausgabe