Widgets in andere QThreads auslagern

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Hallo, ich habe mittlerweile ein wenig performance Probleme, da ich in meiner Oberfläche mehrere Widgets habe, welche sich nebenher sehr oft aktualisieren. Ich habe bereits einiges in QThreads ausgelagert, doch da die meisten Prozesse mit dem Widgets verbunden sind, ist es leider nicht genug. Ich weiß bereits, dass man in QThreads eigene event loops laufen lassen kann um Qt Funktionen nutzen zu können. Ist es auch möglich Widgets aus dem eigentlichen event loop in ein qthread auszulagern, so dass sich nur das neue qthread um das widget kümmert?

Es ist für mich leider nicht möglich das ganze über eigene Signale zu machen, da es viele Widgets sind und das unheimlich umständlich wäre. :(

Ich muss die Geschwindigkeit unbedingt verbessern. ich hoffe jemand weiß bescheid
deets

Nein, das ist nicht moeglich. Es kann nur einen GUI-Thread geben.

Und ganz ehrlich: ich bezweifele, dass sich deine Probleme daraus ergeben. Moderne Systeme koennen dermassen viele Pixel auf dem Bildschirm durch die Gegend schleudern, alles in einem Thread - da denke ich hast du an anderen Stellen Optimierungspotential. UU ist dann Python nicht mehr die richtige Antwort, sondern Custom-Widgets in C++ implementiert, das kann aber nur Profiling klaeren.
lunar

@Trubinial Guru: Die von Qt bereit gestellten Widgets sind in C++ implementiert, und zeichnen unter Umständen hardwarebeschleunigt, es ist mithin völlig unwahrscheinlich, dass diese Widgets selbst zu langsam sind. Hast Du irgendwelche eigenen Widgets in Python implementiert?

Es fällt mir auch schwer, zu glauben, dass eine rechenintensive Aufgabe wirklich andauernd auf GUI-Widgets zugreifen muss, insofern frage ich mich, was Du wohl damit meinst, dass "Prozesse mit Widgets verbunden sind". Bist Du sicher, dass Du "QThread" richtig verwendest? Kannst Du Quelltext zeigen, mit dem wir die Performance-Probleme nachvollziehen können?
Antworten