PyQt5中QMessageBox的Cancel按钮的图标设置和使用示例
在PyQt5中,可以使用QMessageBox类创建消息对话框。QMessageBox可以显示不同类型的消息,比如信息、警告、错误等。每个消息对话框通常都有一个或多个按钮,其中包括一个Cancel按钮。
QMessageBox提供了一个静态方法来显示消息对话框,该方法的语法如下:
QMessageBox.question(parent, title, message, buttons, defaultButton)
参数说明:
- parent:父窗口组件,可以是QWidget或QMainWindow。
- title:消息对话框的标题。
- message:消息对话框显示的消息内容。
- buttons:要显示的按钮类型,可以是一种或多种类型。常用的按钮类型有:
- QMessageBox.Yes:显示“Yes”按钮。
- QMessageBox.No:显示“No”按钮。
- QMessageBox.Cancel:显示“Cancel”按钮。
- QMessageBox.Ok:显示“Ok”按钮。
- defaultButton:默认选中的按钮。
下面是一个使用QMessageBox的示例,包括了Cancel按钮的图标设置:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QMessageBox示例')
button = QPushButton('显示消息框', self)
button.clicked.connect(self.showMessageBox)
button.move(100, 80)
def showMessageBox(self):
reply = QMessageBox.question(self, '消息', '是否保存修改?',
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, QMessageBox.Cancel)
if reply == QMessageBox.Yes:
print('保存修改')
elif reply == QMessageBox.No:
print('不保存修改')
else:
print('取消')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
上述示例中,我们在showMessageBox方法中使用QMessageBox.question方法显示一个消息框。这个消息框显示一个消息内容为"是否保存修改?"的对话框,标题为"消息"。按钮类型为QMessageBox.Yes、QMessageBox.No和QMessageBox.Cancel,其中默认选中的按钮为QMessageBox.Cancel。
在代码中,我们可以通过判断reply的值来确定用户点击了哪个按钮。如果reply的值为QMessageBox.Yes,表示用户点击了"Yes"按钮;如果reply的值为QMessageBox.No,表示用户点击了"No"按钮;如果reply的值为QMessageBox.Cancel,表示用户点击了"Cancel"按钮。
使用QMessageBox可以方便地创建各种类型的消息对话框,并对用户的选择进行相应的操作。
