PyQt5模拟繁忙进度条
时间: 2023-12-08 13:04:32 浏览: 76
程序忙碌时的进度条
您可以使用QProgressBar控件来模拟繁忙进度条。以下是一个简单的示例代码:
```python
import sys
import time
from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton
from PyQt5.QtCore import QThread, pyqtSignal
class WorkerThread(QThread):
progress = pyqtSignal(int)
def run(self):
for i in range(101):
self.progress.emit(i)
time.sleep(0.1)
class App(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('繁忙进度条')
self.setGeometry(100, 100, 300, 100)
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(20, 20, 260, 25)
self.button = QPushButton('开始', self)
self.button.setGeometry(100, 60, 100, 30)
self.button.clicked.connect(self.start_progress)
self.thread = WorkerThread()
self.thread.progress.connect(self.update_progress)
def start_progress(self):
self.button.setEnabled(False)
self.thread.start()
def update_progress(self, value):
self.progress_bar.setValue(value)
if value == 100:
self.button.setEnabled(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
ex.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个QProgressBar控件和一个QPushButton控件。当用户单击“开始”按钮时,我们启动一个QThread并开始模拟进度。我们将WorkerThread类的progress信号连接到update_progress方法,该方法在主线程中更新QProgressBar的值。当进度达到100时,我们重新启用按钮。
阅读全文