[PyQt] Cooperative multi-inheritance with QObject + QRunner
elvstone at gmail.com
Tue May 31 09:24:35 BST 2016
2016-05-31 10:19 GMT+02:00 Barry Scott <barry at barrys-emacs.org>:
> On Tuesday 31 May 2016 09:53:43 Elvis Stansvik wrote:
>> Hi all,
>> I tried subclassing both QObject and QRunnable, like this:
>> class Job(QObject, QRunnable):
>> finished = pyqtSignal()
>> def __init__(self, *args, **kwargs):
>> super().__init__(*args, **kwargs)
> super only call init for QObject()
> you need to call __init__ for QRunnable.
Hm, I thought that with PyQt5, only a single call is required, since
PyQt classes now support cooperative multi-inheritance:
>> def run(self):
>> pass # Do stuff
>> But trying to run it on a QThreadPool with
>> job = Job()
>> I get
>> TypeError: could not convert 'Job' to 'QRunnable'
>> Is it impossible to leverage PyQt's support for cooperative
>> multi-inheritance in this case?
>> I'd like the class to be a QObject, so that I can emit signals from
>> it, but at the same time a QRunnable so that I can run it on a
>> QThreadPool. AFAIK this is possible from C++, but looks like it won't
>> work with PyQt?
>> Thanks in advance,
>> PyQt mailing list PyQt at riverbankcomputing.com
More information about the PyQt