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

如何通过PyQt5的question()方法创建一个询问用户是否清空数据的消息框

发布时间:2023-12-18 04:15:04

通过PyQt5的question()方法,可以创建一个询问用户是否清空数据的消息框。question()方法是 QMessageBox 类的一个静态方法,用于创建一个包含问题和选项的对话框。

下面是一个通过PyQt5的question()方法创建询问用户是否清空数据的消息框的示例代码:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox


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

    def initUI(self):
        self.setGeometry(100, 100, 300, 200)
        self.setWindowTitle('Question Message Box Example')
        self.show()

    def closeEvent(self, event):
        reply = QMessageBox.question(self, '确认清空数据', '是否清空数据?',
                                     QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec_())

在上面的例子中,我们定义了一个继承自 QMainWindow 的 MainWindow 类。在 initUI() 方法中,我们设置了窗口的几何位置、大小和标题,并显示窗口。

我们还重写了 closeEvent() 方法,该方法会在用户关闭窗口时被调用。在 closeEvent() 方法中,我们使用 question() 方法创建了一个包含问题和选项的消息框。question() 方法的 个参数是父窗口,这里我们传入 self;第二个参数是消息框的标题;第三个参数是消息框的内容;第四个参数是消息框显示的按钮,这里我们使用了 QMessageBox.Yes 和 QMessageBox.No;第五个参数是消息框默认选中的按钮,这里我们使用了 QMessageBox.No。

当用户选择了 Yes 按钮时,我们调用 event.accept() 方法来接受关闭窗口的事件,即关闭窗口。否则,我们调用 event.ignore() 方法来忽略关闭窗口的事件,即不关闭窗口。

最后,在主程序中创建 QApplication 对象,创建 MainWindow 对象,并进入主事件循环。

运行该示例代码,将会显示一个包含确认清空数据问题的对话框。如果用户点击了 Yes 按钮,窗口将会被关闭;如果用户点击了 No 按钮,窗口将不会关闭。

希望上述内容能够帮助你理解如何通过PyQt5的question()方法创建一个询问用户是否清空数据的消息框,并且能够应用到实际项目中。