Seite 1 von 1

[gelöst] QFrames mit QThreads ein und ausblenden

Verfasst: 18. April 2011 15:43
von Julia
Hallöchen,

verwende mehrere QPushButtons in einem FlowLayout.
Jeder Button hält hunderte von QLabels,
die unsichtbar im FlowLayout hinzugefügt werden.

Wird ein QPushButton gedrückt, so werden die
Labels sichbar. Bei zweitem Mausklick unsichtbar.

Da es 200 Labels pro Button sind, dauert es ca. 4 Sekunden
bis diese inkl ihrer Pixmap sichtbar werden.

Möchte daher die Labels der Reihe nach
mit Hilfe eines Threads ein- und ausblenden.
Habe dazu einen QThread angelegt, der vom PushButton
einen vector aller Labels erhält und diese einblendet.

Leider bekomme ich auf der Konsole den Output:

Code: Alles auswählen

QCoreApplication::sendPostedEvents: Cannot send posted events for objects in ano
ther thread
ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects ow
ned by a different thread. Current thread 35e07f0. Receiver '' (of type 'Categor
yItem') was created in thread 27ed338", file kernel\qcoreapplication.cpp, line 3
49
hmm wer kann mir da weiterhelfen?

lg Julia

Verfasst: 18. April 2011 17:08
von upsala
Das einblenden von 200 QLabels kann keine 4 Sekunden dauern. Versuch doch mal mit einem Profiler herauszufinden wo das Performance-Problem liegt.

Außerdem braucht man bei Qt keinen Thread um nacheinander die Widgets einzublenden, ein Timer tuts auch.

Verfasst: 18. April 2011 18:22
von Julia
Hallo,

3 Sekunden im Debug-Modus
2 Sekunden im Release-Modus
Das mit dem Timer hat mir sehr weitergeholfen!
Vielen Dank