pyqt设置等待窗口
时间: 2024-10-22 21:20:23 浏览: 21
Python 如何实现在PyQt5窗口中弹出等待提示框 Python源码
在PyQt中创建等待窗口通常用于显示程序正在处理某些任务,用户可以在此期间看到进度或等待操作完成。你可以使用`QApplication.processEvents()`和`QWidget.exec_()`配合一个简单的线程或者信号槽机制来实现这个效果。
以下是一个简化的例子:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
from PyQt5.QtCore import QTimer, pyqtSlot
class WaitingWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("等待...")
self.setWindowModality(Qt.ApplicationModal) # 阻塞窗口
self.label = QLabel("加载中...")
self.layout = QVBoxLayout()
self.layout.addWidget(self.label)
self.setLayout(self.layout)
@pyqtSlot() # 这里定义一个槽函数,当某个长时间运行的任务完成后触发
def on_task_completed(self):
self.close() # 关闭等待窗口
QMessageBox.information(self, "提示", "任务已完成!")
# 主程序部分
def long_running_task():
# 这里模拟耗时任务
timer = QTimer()
timer.timeout.connect(self.waiting_window.on_task_completed)
timer.start(3000) # 设置任务运行3秒
app = QApplication([])
waiting_window = WaitingWindow()
waiting_window.show()
# 开始耗时任务
long_running_task()
# 等待任务完成,窗口关闭前,应用程序会阻塞直到窗口关闭
app.exec_()
```
在这个例子中,当你调用`long_running_task()`时,等待窗口会弹出并显示“加载中...”。3秒钟后,`on_task_completed`槽函数会被调用,关闭等待窗口并显示信息“任务已完成!”。
阅读全文