PyQt5 进度条详细示例与性能优化
下面是一个完整的 PyQt5 进度条示例,包含详细说明和性能优化技巧。
完整示例代码
在这里插入代码片
python
import sys
import time
from PyQt5.QtWidgets import (QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QProgressBar, QLabel)
from PyQt5.QtCore import QThread, pyqtSignal, Qtclass WorkerThread(QThread):"""工作线程类,用于执行耗时任务并更新进度"""# 自定义信号,用于更新进度条progress_updated = pyqtSignal(int)status_updated = pyqtSignal(str)finished = pyqtSignal()def __init__(self, total_steps=100):super().__init__()self.total_steps = total_stepsself._is_running = Truedef run(self):"""执行耗时任务"""for i in range(1, self.total_steps + 1):if not self._is_running:break# 模拟耗时任务time.sleep(0.05) # 每个步骤0.05秒# 计算进度百分比progress = int((i / self.total_steps) * 100)# 发射信号更新UIself.progress_updated.emit(progress)self.status_updated.emit(f"处理中...