如何使用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()方法创建询问用户是否保存设置的消息框的例子。您可以根据自己的需要,修改和扩展这个例子以满足您的需求。
