Seite 1 von 1

QLabel neu Zeichnen

Verfasst: 14. Februar 2006 17:23
von zeec
Hallo,
folgende Situation:
ich habe 4 Felder, die in einem QGridLayout angeordnet sind.

Code: Alles auswählen

+---+---+
|  1 |  2 |
+---+---+
|  3 |  4 |
+---+---+
Die Felder sind QLabel, denen mit setPixmap() ein jpeg (die Zahlen) zugeordnet wurden.
Ich mochte das Feld in einer Schleife neu Zeichnen. Etwa so (stark vereinfacht):

Code: Alles auswählen

 while(1){ sleep(1); feld->neueZahlen(x,y,z,v); } 
Leider wird das Feld nicht jedesmal aktualisiert, sondern erste beim letzten Durchlauf.
Ich hab es schon mit update() und repaint() versucht, aber ich bekomm es nicht hin, dass es nach jeder Sekunde neu gezeichnet wird.

Kann mir da jemand Helfen?
Thx

Verfasst: 14. Februar 2006 21:32
von upsala
Du verwendest nicht wirklich sleep oder? Schau dir mal QObject::timerEvent(...) an

Verfasst: 15. Februar 2006 17:07
von zeec
Warum sollte ich sleep() nicht verwenden?
Mein Beispiel ist stark vereinfacht. Ein Algo. hat eine Liste von Feldern,
die grafisch dargestellt werden sollten. Die Grafik wird im einfach nach
einer bestimmten Zeit mit den naechsten Daten gefuettert.

Verfasst: 15. Februar 2006 20:37
von upsala
Und wann sollen dann deine Events abgearbeitet werden?
QApplication::processEvents
wäre ein Workaround, aber bei Zeiten im Sekundenabstand die Timer nicht zu verwenden, finde ich schon sehr komisch...

Verfasst: 16. Februar 2006 12:28
von zeec
Danke, so funktioniert es.
Genau was ich gesucht habe.