[PyQt] Threads with PyQt. Qt's or Python's?

Sergio Jovani lesergi at gmail.com
Mon Jan 19 15:46:10 GMT 2009


Sorry!


thread = Thread(self)
self.connet(thread, SIGNAL("Signal"), self.Slot)
thread.start()

2009/1/19 Sergio Jovani <lesergi at gmail.com>:
> Hi,
>
> I always used QThread and emit() in order to communicate with main
> QThread without problems:
>
> thread = Thread(self)
> self.connet(thread, SIGNAL("Signal"))
> thread.start()
>
> 2009/1/19 Christoph Burgmer <chrislb at gmx.de>:
>> Am Monday, 19. January 2009 schrieb Giovanni Bajo:
>>
>>> On 1/19/2009 3:13 PM, eliben wrote:
>>
>>> > I've seen various references to this issue before, but nothing to fully
>>
>>> > address it as I'd expect.
>>
>>> >
>>
>>> > Can you comment on the pros and cons of using QThread vs Python's
>>> > threads
>>
>>> > with PyQt?
>>
>>> >
>>
>>> > I'll begin: on the surface, Python's threads make more sense because
>>
>>> > they're Qt independent and can be ported between apps that don't
>>
>>> > necessarily depend on Qt (for example a web version of a GUI app). The
>>
>>> > Python thread API is powerful enough for all uses, it seems.
>>
>>> >
>>
>>> > However, there are concerns. Perhaps QThreads are more efficient? Or
>>
>>> > maybe more tightly integrated with the other parts of PyQt, so it's
>>
>>> > easier to use them?
>>
>>>
>>
>>> It's mostly the same. The main difference is that QThreads are better
>>
>>> integrated with Qt (asynchrnous signals/slots, event loop, etc.). Also,
>>
>>> you can't use Qt from a Python thread (you can't for instance post event
>>
>>> to the main thread through QApplication.postEvent): you need a QThread
>>
>>> for that to work.
>>
>> I am doing a
>>
>> QCoreApplication.postEvent()
>>
>> out of "run()" from a "threading.Thread" class without any problems.
>>
>> Christoph
>>
>> _______________________________________________
>> PyQt mailing list    PyQt at riverbankcomputing.com
>> http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>>
>


More information about the PyQt mailing list