要将PyQt ProgressBar绑定到编译中并同时执行其他代码,可以使用多线程来实现。以下是一个示例代码:
import sys
import time
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar, QPushButton
class WorkerThread(QThread):
progressChanged = pyqtSignal(int)
def run(self):
for i in range(101):
time.sleep(0.1) # 模拟耗时操作
self.progressChanged.emit(i)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.progress_bar = QProgressBar(self)
self.progress_bar.setGeometry(50, 50, 200, 30)
self.start_button = QPushButton("Start", self)
self.start_button.setGeometry(50, 100, 200, 30)
self.start_button.clicked.connect(self.start_work)
def start_work(self):
self.worker_thread = WorkerThread()
self.worker_thread.progressChanged.connect(self.update_progress)
self.worker_thread.start()
def update_progress(self, value):
self.progress_bar.setValue(value)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.setGeometry(500, 300, 300, 200)
window.show()
sys.exit(app.exec_())
在这个示例中,创建了一个继承自QThread
的自定义工作线程WorkerThread
。在WorkerThread
的run
方法中,模拟了一个耗时操作,并通过progressChanged
信号发送进度值。
在MainWindow
中,创建了一个QProgressBar
和一个QPushButton
。当点击按钮时,会创建一个WorkerThread
实例,并将其progressChanged
信号连接到update_progress
槽函数。然后调用start
方法启动线程。
update_progress
槽函数会在接收到进度值时更新进度条的值。
通过这种方式,可以将PyQt ProgressBar绑定到编译中并同时执行其他代码。
上一篇:绑定Photoswipe
下一篇:绑定python-vlc的问题