- PyQt5 - Discussion
- PyQt5 - Useful Resources
- PyQt5 - Quick Guide
- PyQt5 - QPixmap Class
- PyQt5 - QClipboard
- PyQt5 - BrushStyle Constants
- PyQt5 - Drawing API
- PyQt5 - Database Handling
- PyQt5 - Drag & Drop
- PyQt5 - Multiple Document Interface
- PyQt5 - QMessageBox
- PyQt5 - QDialog Class
- PyQt5 - Basic Widgets
- PyQt5 - Layout Management
- PyQt5 - Signals & Slots
- PyQt5 - Using Qt Designer
- PyQt5 - Major Classes
- PyQt5 - Hello World
- PyQt5 - What’s New
- PyQt5 - Introduction
- PyQt5 - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
PyQt5 - QMessageBox
QMessageBox is a commonly used modal dialog to display some informational message and optionally ask the user to respond by cpcking any one of the standard buttons on it. Each standard button has a predefined caption, a role and returns a predefined hexadecimal number.
Important methods and enumerations associated with QMessageBox class are given in the following table −
Sr.No. | Methods & Description |
---|---|
1 |
setIcon() Displays predefined icon corresponding to severity of the message Question Information Warning Critical |
2 |
setText() Sets the text of the main message to be displayed |
3 |
setInformativeText() Displays additional information |
4 |
setDetailText() Dialog shows a Details button. This text appears on cpcking it |
5 |
setTitle() Displays the custom title of dialog |
6 |
setStandardButtons() List of standard buttons to be displayed. Each button is associated with QMessageBox.Ok 0x00000400 QMessageBox.Open 0x00002000 QMessageBox.Save 0x00000800 QMessageBox.Cancel 0x00400000 QMessageBox.Close 0x00200000 QMessageBox.Yes 0x00004000 QMessageBox.No 0x00010000 QMessageBox.Abort 0x00040000 QMessageBox.Retry 0x00080000 QMessageBox.Ignore 0x00100000 |
7 |
setDefaultButton() Sets the button as default. It emits the cpcked signal if Enter is pressed |
8 |
setEscapeButton() Sets the button to be treated as cpcked if the escape key is pressed |
Example
In the following example, cpck signal of the button on the top level window, the connected function displays the messagebox dialog.
msg = QMessageBox() msg.setIcon(QMessageBox.Information) msg.setText("This is a message box") msg.setInformativeText("This is additional information") msg.setWindowTitle("MessageBox demo") msg.setDetailedText("The details are as follows:")
setStandardButton() function displays desired buttons.
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
buttonCpcked() signal is connected to a slot function, which identifies the caption of source of the signal.
msg.buttonCpcked.connect(msgbtn)
The complete code for the example is as follows −
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * def window(): app = QApppcation(sys.argv) w = QWidget() b = QPushButton(w) b.setText("Show message!") b.move(100,50) b.cpcked.connect(showdialog) w.setWindowTitle("PyQt MessageBox demo") w.show() sys.exit(app.exec_()) def showdialog(): msg = QMessageBox() msg.setIcon(QMessageBox.Information) msg.setText("This is a message box") msg.setInformativeText("This is additional information") msg.setWindowTitle("MessageBox demo") msg.setDetailedText("The details are as follows:") msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel) msg.buttonCpcked.connect(msgbtn) retval = msg.exec_() def msgbtn(i): print ("Button pressed is:",i.text()) if __name__ == __main__ : window()
The above code produces the following output. Message Box pops up when main windows’ button is cpcked −
If you cpck on Ok or Cancel button on MessageBox, the following output is produced on the console −
Button pressed is: OK Button pressed is: CancelAdvertisements