pyqt6如何实现等待操作完成的弹窗
时间: 2024-04-09 16:27:38 浏览: 118
pyQT6实现围棋游戏
在PyQt6中,您可以使用QMessageBox来创建一个弹窗,以提示用户等待操作完成。以下是一个简单的示例代码,演示如何实现等待操作完成的弹窗:
```python
from PyQt6.QtWidgets import QApplication, QMessageBox
from PyQt6.QtCore import Qt, QThread, pyqtSignal
import time
# 自定义线程类
class WorkerThread(QThread):
# 定义信号,用于通知操作完成
finished = pyqtSignal()
def run(self):
# 模拟耗时操作
time.sleep(5)
# 发送完成信号
self.finished.emit()
# 创建应用程序实例
app = QApplication([])
# 创建弹窗
message_box = QMessageBox()
message_box.setWindowTitle("等待操作完成")
message_box.setText("请等待操作完成...")
message_box.setStandardButtons(QMessageBox.StandardButton.NoButton)
message_box.setModal(True)
message_box.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint)
# 创建线程实例
worker_thread = WorkerThread()
# 连接线程的信号和弹窗的槽函数
worker_thread.finished.connect(message_box.accept)
# 启动线程
worker_thread.start()
# 显示弹窗并等待操作完成
message_box.exec()
# 应用程序退出
app.quit()
```
在上述代码中,我们首先定义了一个自定义的线程类WorkerThread,其中模拟了一个耗时的操作。线程在执行完操作后会发出finished信号。然后,我们创建了一个QMessageBox作为等待操作完成的弹窗,并设置其标题和文本内容。弹窗被设置为模态窗口和置顶窗口。接下来,我们创建了WorkerThread的实例,并将其finished信号与弹窗的accept槽函数连接起来。最后,我们启动线程并显示弹窗,通过调用`message_box.exec()`来等待操作完成。
当操作完成后,线程会发出finished信号,弹窗的accept槽函数会被触发,关闭弹窗,继续执行后续代码。
希望这可以回答您的问题。如果您有任何进一步的疑问,请随时提问。
阅读全文