python 信号与槽实现进度条实时显示软件进度

1.通过Qt designer 绘制UI进度条界面

2.通过插件 将.ui文件转换为.py文件;

3.创建进度条功能类:

 

4.定义信号类:

5.主函数接收信号:

6.函数发送信号:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用QThread和信号机制来实现pyqt5的进度条与子线程同步关联。具体实现步骤如下: 1. 创建一个继承自QThread的子线程类,并在其中实现需要执行的任务。 2. 在主线程中创建一个QProgressBar进度条对象,并将其与子线程信号连接起来。 3. 在子线程中使用emit()函数发送信号,将任务执行的进度信息传递给主线程。 4. 在主线程中通过信号机制接收子线程传递的进度信息,并更新进度条显示。 下面是示例代码: ```python import sys from PyQt5.QtCore import QThread, pyqtSignal from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton, QVBoxLayout class Worker(QThread): progress = pyqtSignal(int) def run(self): for i in range(101): self.progress.emit(i) self.msleep(50) class MainWindow(QWidget): def __init__(self): super().__init__() self.progress_bar = QProgressBar() self.progress_bar.setValue(0) self.button = QPushButton("Start") self.button.clicked.connect(self.start_worker) layout = QVBoxLayout() layout.addWidget(self.progress_bar) layout.addWidget(self.button) self.setLayout(layout) def start_worker(self): self.worker = Worker() self.worker.progress.connect(self.update_progress) self.worker.start() def update_progress(self, value): self.progress_bar.setValue(value) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个Worker类作为子线程,其中定义了一个progress信号,用于传递任务执行的进度信息。在run()方法中,我们模拟了一个任务,每隔50毫秒就发送一次进度信号。 在MainWindow类中,我们创建了一个QProgressBar进度条对象和一个QPushButton按钮对象。当点击按钮时,我们创建了一个Worker对象,并将其progress信号与update_progress()函数连接起来。在update_progress()函数中,我们更新了进度条显示。 通过这种方式,我们就可以实现pyqt5的进度条与子线程同步关联。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值