<p dir="ltr"><br>
Den 31 maj 2016 11:01 fm skrev "Phil Thompson" <<a href="mailto:phil@riverbankcomputing.com">phil@riverbankcomputing.com</a>>:<br>
><br>
> On 31 May 2016, at 8:53 am, Elvis Stansvik <<a href="mailto:elvstone@gmail.com">elvstone@gmail.com</a>> wrote:<br>
> ><br>
> > Hi all,<br>
> ><br>
> > I tried subclassing both QObject and QRunnable, like this:<br>
> ><br>
> > class Job(QObject, QRunnable):<br>
> ><br>
> >    finished = pyqtSignal()<br>
> ><br>
> >    def __init__(self, *args, **kwargs):<br>
> >        super().__init__(*args, **kwargs)<br>
> ><br>
> >    def run(self):<br>
> >        pass  # Do stuff<br>
> >        self.finished.emit()<br>
> ><br>
> > But trying to run it on a QThreadPool with<br>
> ><br>
> >    job = Job()<br>
> >    QThreadPool.globalInstance().start(job)<br>
> ><br>
> > I get<br>
> ><br>
> >    TypeError: could not convert 'Job' to 'QRunnable'<br>
> ><br>
> > Is it impossible to leverage PyQt's support for cooperative<br>
> > multi-inheritance in this case?<br>
> ><br>
> > I'd like the class to be a QObject, so that I can emit signals from<br>
> > it, but at the same time a QRunnable so that I can run it on a<br>
> > QThreadPool. AFAIK this is possible from C++, but looks like it won't<br>
> > work with PyQt?<br>
><br>
> Correct - the usual restrictions on multiple inheritance of C++ classes.</p>
<p dir="ltr">Alright, thanks.</p>
<p dir="ltr">In the end I've reworked the code so I don't even need the threading, but good to know.</p>
<p dir="ltr">Elvis</p>
<p dir="ltr">><br>
> Phil<br>
</p>