如何知道每个线程的进度?

发布于 2024-11-08 07:00:23 字数 587 浏览 0 评论 0原文

我是Python新手,我创建了一个具有多线程的上传程序,我的问题是我只有一个进度条来显示每个线程的进度。 我使用 python pyqt4 QThread。 有没有办法知道每个上传线程的进度? 这是代码的一些部分。

class Worker(QThread):

    def __init__(self,parent=None):
        QThread.__init__(self,parent)
        self.counter = 0
        self.received = 0
        self.size = 0
        self.f = None
        self.ftp = None
        self.filename = ""

    def __del__(self):    
        self.wait()

    def handleDownload(self, block):
        self.counter += 1
        self.received += len(block)

然后,handleDownload() 将向进度条发出信号以更新其值。

谢谢

im new in python and i have created an uploading program with multi threading, my problem is i have only one progress bar that displays the progress of each thread.
im using python pyqt4 QThread.
Is there a way to know whats the progress of each uploading thread?
here are some parts of the code.

class Worker(QThread):

    def __init__(self,parent=None):
        QThread.__init__(self,parent)
        self.counter = 0
        self.received = 0
        self.size = 0
        self.f = None
        self.ftp = None
        self.filename = ""

    def __del__(self):    
        self.wait()

    def handleDownload(self, block):
        self.counter += 1
        self.received += len(block)

the handleDownload() will then emit signal to the progress bar to update its value.

thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妳是的陽光 2024-11-15 07:00:23

您需要创建一个在所有线程之间共享的计数器对象。每次线程完成下载时,它都会使用 QMutex 增加计数并解锁,然后您可以发送信号并修改进度条(尽管您可能想确保它不会更新得太频繁)

You need to create a counter object that's shared between all threads. Each time a thread completes a download it locks with a QMutex increments the count and unlocks you can then send your signal and modify the progress bar(although you may want to make sure it doesn't update too often)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文