Frage

I aufgefallen, dass, wenn die Funktion setModel ist parallel Thread ausgeführt ( ich habe versucht, threading.Timer oder threading.thread), bekomme ich diese:

QObject: Cannot create children for a parent that is in a different thread.
(Parent is QHeaderView(0x1c93ed0), parent's thread is QThread(0xb179c0), current thread is QThread(0x23dce38)
QObject::startTimer: timers cannot be started from another thread
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTreeView(0xc65060), parent's thread is QThread(0xb179c0), current thread is QThread(0x23dce38)
QObject::startTimer: timers cannot be started from another thread

Gibt es eine Möglichkeit, dies zu lösen?

War es hilfreich?

Lösung

Es ist in der Tat eine Tatsache des Lebens, dass multithreaded Verwendung von Qt (und andere reiche Frameworks) eine heikle und schwierige Aufgabe ist es, explizite Aufmerksamkeit und Sorgfalt erfordern - siehe Verbindungen in Warteschlange .

Andere Tipps

Sieht aus wie Sie es auf einem Qt Einschränkung stapfte haben. Versuchen Sie es mit Signalen oder Ereignisse, wenn Sie Objekte müssen über Threads kommunizieren.

oder das Qt Volk darüber fragen. Es scheint nicht spezifisch für PyQt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top