[gelöst] QFrames mit QThreads ein und ausblenden

Alles rund um die Programmierung mit Qt
Antworten
Julia
Beiträge: 24
Registriert: 18. April 2011 14:42

[gelöst] QFrames mit QThreads ein und ausblenden

Beitrag 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
Zuletzt geändert von Julia am 18. April 2011 18:23, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
Julia
Beiträge: 24
Registriert: 18. April 2011 14:42

Beitrag von Julia »

Hallo,

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