PyQt5弹窗询问,确认就关闭,取消就每间隔10秒再次弹窗询问,直到确认退出
时间: 2024-10-10 17:05:52 浏览: 24
基于PyQt5开发的弹窗式背单词项目python源码.zip
在PyQt5中,你可以使用`QMessageBox`模块来创建对话框进行确认或取消操作。如果你想创建一个弹窗,当用户点击“确认”时关闭,而点击“取消”时每隔10秒重复显示,可以通过以下步骤实现:
1. 首先,导入所需的模块:
```python
from PyQt5.QtWidgets import QApplication, QMessageBox
import time
```
2. 创建一个函数来处理对话框事件:
```python
def handle_popup():
reply = QMessageBox.question(None, 'Message', 'Do you want to exit?', QMessageBox.Yes | QMessageBox.No)
if reply == QMessageBox.Yes:
app.quit() # 用户确认后关闭应用
else:
timer.start(10000) # 如果用户选择“取消”,启动定时器
# 定义一个定时器,用于重新显示弹窗
timer = QTimer()
```
3. 在主应用循环里调用这个函数,同时设置定时器:
```python
if __name__ == '__main__':
app = QApplication([])
timer.timeout.connect(handle_popup) # 当定时器超时时触发handle_popup函数
timer.start(10000) # 初始时立即等待10秒(10000毫秒)
while not app.flags() & Qt.AltShiftBreak: # 检查是否收到退出信号
handle_popup()
app.exec_()
```
阅读全文