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

PyQt5中如何使用QMessageBox的Cancel按钮显示确认框

发布时间:2023-12-31 19:14:16

在PyQt5中,可以使用QMessageBox来创建一个具有Cancel按钮的确认框。

以下是一个使用QMessageBox的例子:

from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle("Confirmation Dialog Example")
        self.setGeometry(300, 200, 400, 300)

        # 创建一个按钮,用于触发确认框的显示
        button = QPushButton("Show Confirmation Dialog", self)
        button.setGeometry(50, 50, 300, 30)
        button.clicked.connect(self.showConfirmationDialog)

    def showConfirmationDialog(self):
        # 创建一个确认框,并设置消息文本和按钮类型
        confirmationBox = QMessageBox(self)
        confirmationBox.setWindowTitle("Confirmation")
        confirmationBox.setText("Are you sure you want to continue?")
        confirmationBox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
        
        # 设置默认的按钮,这里将Cancel按钮设置为默认按钮
        confirmationBox.setDefaultButton(QMessageBox.Cancel)

        # 显示确认框,并获取用户的选择
        choice = confirmationBox.exec_()

        # 根据用户的选择进行相应的操作
        if choice == QMessageBox.Ok:
            print("User clicked Ok")
        elif choice == QMessageBox.Cancel:
            print("User clicked Cancel")

if __name__ == "__main__":
    app = QApplication([])
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec_()

这个例子创建了一个主窗口,其中包含一个按钮。当用户点击按钮时,会弹出一个确认框,询问是否继续。确认框中的按钮包括Ok和Cancel两个选项,其中Cancel按钮被设置为默认按钮。当用户点击响应的按钮时,会在终端输出相应的信息。

通过这个例子,您可以学习如何在PyQt5中使用QMessageBox来创建一个具有Cancel按钮的确认框,并根据用户的选择进行相应的操作。