QMessageBox 📦
QMessageBox
是一个非常实用的工具,可以方便地在 PyQt 应用程序中显示各种类型的弹出对话框。通过使用预定义的静态方法或自定义对话框,你可以轻松地实现提示、警告、错误和询问等功能。🎉
预定义的对话框类型 🎨
QMessageBox
提供了一些预定义的静态方法,可以快速创建常见的对话框类型:
-
QMessageBox.information(parent, title, text)
:信息框 💡 -
QMessageBox.warning(parent, title, text)
:警告框 ⚠️ -
QMessageBox.critical(parent, title, text)
:错误框 ❌ -
QMessageBox.question(parent, title, text)
:询问框 ❓
代码示例 👨💻
def showMessageBox(self):
# 信息框 💡
QMessageBox.information(self, '信息', '这是一个信息框。')
# 警告框 ⚠️
QMessageBox.warning(self, '警告', '这是一个警告框。')
# 错误框 ❌
QMessageBox.critical(self, '错误', '这是一个错误框。')
# 询问框 ❓
reply = QMessageBox.question(self, '询问', '你确定要继续吗?',
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
print('用户选择了“是”')
else:
print('用户选择了“否”')
自定义按钮和图标 🛠️
有时候你可能需要更多的控制,比如添加自定义按钮或者改变图标的样式。
def showMessageBox(self):
msgBox = QMessageBox()
msgBox.setWindowTitle('自定义对话框')
msgBox.setText('这是一个自定义对话框。')
msgBox.setIcon(QMessageBox.Question)
# 添加自定义按钮 🎚️
btnYes = msgBox.addButton('是', QMessageBox.YesRole)
btnNo = msgBox.addButton('否', QMessageBox.NoRole)
btnCancel = msgBox.addButton('取消', QMessageBox.RejectRole)
msgBox.exec_()
if msgBox.clickedButton() == btnYes:
print('用户点击了“是”')
elif msgBox.clickedButton() == btnNo:
print('用户点击了“否”')
elif msgBox.clickedButton() == btnCancel:
print('用户点击了“取消”')