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

如何使用PyQt5的question()方法创建一个询问用户是否保存设置的消息框

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

PyQt5是Python的一个GUI库,其中包含了丰富的UI组件和功能。question()是其中的一个方法,用于创建询问用户是否保存设置的消息框。下面是一个使用PyQt5的question()方法创建询问用户是否保存设置的消息框的例子:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 250, 150)  # 设置窗口的位置和大小
        self.setWindowTitle('Question message box')  # 设置窗口标题

        self.show()

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QMessageBox.Yes | 
            QMessageBox.No, QMessageBox.No)  # 创建询问用户是否保存设置的消息框

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

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个例子中,我们首先导入了所需要的模块,包括了QApplication、QWidget、QMessageBox和QPushButton。然后,我们创建了一个继承自QWidget的Example类,并在其中初始化UI界面。

在初始化UI界面的方法initUI()中,我们设置了窗口的位置和大小,并为窗口设置了标题。最后,我们通过调用show()方法显示窗口。

接下来,我们重写了closeEvent()方法,该方法在窗口关闭时自动调用。在该方法中,我们使用QMessageBox的question()方法创建了一个询问用户是否保存设置的消息框。在该消息框中,用户可以选择“是”或“否”。

如果用户选择“是”,那么我们调用event.accept()方法接受关闭事件,窗口将会关闭。如果用户选择“否”,那么我们调用event.ignore()方法忽略关闭事件,窗口将不会关闭。

最后,在主函数中,我们创建了一个QApplication对象,创建了Example对象,并调用了exec_()方法启动了应用程序的事件循环。

当用户关闭窗口时,将会弹出询问用户是否保存设置的消息框。根据用户的选择,程序将会决定是否接受关闭事件或忽略关闭事件。

这就是使用PyQt5的question()方法创建询问用户是否保存设置的消息框的例子。您可以根据自己的需要,修改和扩展这个例子以满足您的需求。