pyside6如何在循环执行时显示一个弹窗稍等,循环结束后弹窗自动关闭
时间: 2024-12-12 12:27:15 浏览: 10
在PySide6中,当你的代码在循环中执行而需要向用户展示一个等待提示时,可以在每次循环开始前显示一个等待窗口,循环结束后自动关闭它。这里我们可以利用`QTimer`来控制弹窗的显示和隐藏。下面是一个基本的例子:
```python
from PySide6.QtCore import QTimer, Qt
from PySide6.QtWidgets import QApplication, QMessageBox
def do_something():
# 这里是你需要循环执行的耗时任务
pass
def show_waiting_popup():
msgBox = QMessageBox(QMessageBox.Information, "正在处理", "请稍候...")
msgBox.setStandardButtons(QMessageBox.Ok) # 设置默认按钮为确定
msgBox.setWindowTitle("等待") # 设置窗口标题
msgBox.exec_()
# 使用QTimer在5秒后关闭窗口,可以根据实际需要调整时间
timer = QTimer()
timer.timeout.connect(msgBox.close)
timer.start(5000) # 5000毫秒即5秒钟
# 开始循环,每完成一轮后显示等待窗口,然后继续下一轮
for i in range(10): # 假设这是你的循环次数
do_something()
show_waiting_popup()
# 循环结束后,无需显式关闭窗口,因为之前已经设置了定时器
app.processEvents()
# 主应用程序的主循环,确保所有事件得到处理
app.exec_()
```
这段代码会在每次`do_something`执行完后显示一个等待窗口,等待5秒后自动关闭。如果循环完成后,窗口依然存在,因为它是在`app.exec_()`调用之后由定时器关闭的。
阅读全文