欢迎访问宙启技术站
智能推送

PyQt5中QMessageBox的Cancel按钮的图标设置和使用示例

发布时间:2023-12-31 19:13:08

在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可以方便地创建各种类型的消息对话框,并对用户的选择进行相应的操作。