Looking for pyqt Keywords? Try Ask4Keywords

pyqtThreads mit PyQt verwenden


Bemerkungen

Während einige Teile des Qt-Frameworks Thread-sicher sind, ist vieles nicht der Fall. Die Qt C ++ - Dokumentation bietet einen guten Überblick darüber, welche Klassen wiedereintrittsfähig sind (um Objekte in mehreren Threads zu instanziieren). Folgende Regeln werden am häufigsten gesucht:

  • Sie können ein Qt-GUI-Objekt nicht außerhalb des Hauptthreads erstellen oder darauf zugreifen (z. B. irgendetwas der Unterklasse QWidget oder ähnliches).
  • Selbst wenn die Qt-Klasse wiedereintrittsfähig ist, können Sie den Zugriff auf ein Qt-Objekt nicht zwischen Threads freigeben, es sei denn, die Qt-Dokumentation für diese Klasse gibt explizit an, dass Instanzen threadsicher sind.
  • Sie können QObject.moveToThread() wenn Sie ein Qt-Objekt von einem Thread in einen anderen verschieben müssen (gilt nicht für Qt-GUI-Objekte, die immer im Hauptthread verbleiben müssen). Beachten Sie jedoch, dass das Objekt kein übergeordnetes Element haben darf.

In diesem Stack Overflow-QA wird die Verwendung von Python-Threads nicht empfohlen, wenn Ihr Thread beabsichtigt, mit PyQt auf irgendeine Weise zu interagieren (selbst wenn dieser Teil des Qt-Frameworks threadsicher ist).

Threads mit PyQt verwenden Verwandte Beispiele