PyQt5 QMessageBox

PyQt5 QMessageBox

QMessageBox 是一个常用的模态对话框,用于显示一些信息消息,并且可选地要求用户通过点击其中任意一个标准按钮来作出响应。每个标准按钮都有一个预定义的标题、角色并返回一个预定义的十六进制数。

与 QMessageBox 类相关的重要方法和枚举在下表中给出−

序号 方法和描述
1 setIcon() 显示与消息严重程度相对应的预定义图标
Question
Information
Warning
Critical
2 setText() 设置要显示的主要消息的文本
3 setInformativeText() 显示附加信息
4 setDetailText() 对话框显示一个”详细信息”按钮。单击此按钮时显示该文本
5 setTitle() 显示自定义对话框标题
6 setStandardButtons() 要显示的标准按钮列表。每个按钮都与以下值相关联: 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() 将按钮设置为默认按钮。如果按下Enter,则触发clicked信号
8 setEscapeButton() 如果按下escape键,则将该按钮视为已点击

示例

在下面的示例中,单击顶层窗口上的按钮信号,连接的函数将显示消息对话框。

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()函数显示所需的按钮。

msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)

buttonClicked() 信号被连接到一个槽函数,该函数可以识别信号来源的标题。

msg.buttonClicked.connect(msgbtn)

示例的完整代码如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

def window():
   app = QApplication(sys.argv)
   w = QWidget()
   b = QPushButton(w)
   b.setText("Show message!")

   b.move(100,50)
   b.clicked.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.buttonClicked.connect(msgbtn)

   retval = msg.exec_()

def msgbtn(i):
   print ("Button pressed is:",i.text())

if __name__ == '__main__':
   window()

上面的代码产生以下输出。当点击主窗口按钮时,会弹出消息框。

PyQt5 QMessageBox

Button pressed is: OK
Button pressed is: Cancel

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程