python QMessageBox这个怎么用示例代码
时间: 2023-10-29 17:15:01 浏览: 139
下面是一个简单的示例代码,演示如何使用 PyQt5 中的 QMessageBox:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('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_())
```
在这个示例中,我们创建了一个名为 `Example` 的类,它继承了 `QWidget` 类。在 `initUI` 方法中,我们设置了窗口的几何形状和标题,并将窗口显示出来。然后,我们重写了 `closeEvent` 方法,以在窗口关闭时显示一个询问消息框。
在 `closeEvent` 方法中,我们使用 `QMessageBox.question` 方法创建了一个询问消息框。这个方法的第一个参数是消息框的父窗口,第二个参数是消息框的标题,第三个参数是消息框显示的文本。第四个参数是消息框上的按钮,我们使用了 `QMessageBox.Yes` 和 `QMessageBox.No`,以显示“是”和“否”按钮。最后一个参数是默认按钮,我们将其设置为“否”。
当用户按下“是”按钮时,`reply` 变量的值将是 `QMessageBox.Yes`,我们调用 `event.accept()` 方法以关闭窗口。当用户按下“否”按钮时,`reply` 变量的值将是 `QMessageBox.No`,我们调用 `event.ignore()` 方法以忽略关闭事件并保持窗口打开。
阅读全文