多继承自 QObject 和 QRunnable 错误

Posted

技术标签:

【中文标题】多继承自 QObject 和 QRunnable 错误【英文标题】:multi inherit from QObject and QRunnable error 【发布时间】:2013-02-28 11:41:35 【问题描述】:

我正在使用 pyqt4。 我有一个继承自 QObject 和 QRunnable 的类,如下所示:

class DownloadTask(QObject, QRunnable):
    def __init__(self):
        QObject.__init__(self)
        QRunnable.__init__(self)
        self.setAutoDelete(False)

DownloadTask 实例初始化时,最后一行抛出异常:

TypeError: could not convert 'DownloadTask' to 'QRunnable'

但我认为语法上是正确的,QRunnable 有 setAutoDelete 方法。为什么它不能转换为 QRunnable?

更新: 我打算使用 QThreadPool 来管理多线程从 Internet 下载资源,并在完成后发出信号。我该怎么做?

【问题讨论】:

【参考方案1】:

PyQt reference guide > Things to be Aware Of > Multiple inheritance:

不能定义一个从多个 Qt 类继承的新 Python 类。

【讨论】:

我打算使用QThreadPool来管理多线程从互联网下载资源,完成后发出信号。我该怎么做? @hbprotoss 请作为一个单独的问题提出。

以上是关于多继承自 QObject 和 QRunnable 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 QRunnable 进行线程处理 - 发送双向回调的正确方式

无法写入 QRunnable 内的 QTcpSocket

停止 QRunnable 导致主窗口无法关闭

分配两个 QObject [关闭]

重用 QRunnable

C++/Qt - QThread 与 QRunnable