Qt - repaint interval setzen

Alles rund um die Programmierung mit Qt
Antworten
VikingGod
Beiträge: 5
Registriert: 19. Mai 2006 20:40

Qt - repaint interval setzen

Beitrag von VikingGod »

Hallo zusammen
ich hab das Problem das ich eine zeitkritische Anwendung habe, die auf jede Rechenzeit angewiesen ist.

Die großen Rechenoperationen laufen in einem extra Thread und die GUI/Dialog ist in einem separaten Thread

da aber sehr oft das PaintEvent von Qt aus aufgerufen wird;
werden zeitkritische Operationen gebremst...

Hat jemand eine Idee wie ich Qt mitteile das ich den Dialog/Widgets bloß alle 500ms oder so aktualisieren soll?

da es sich um kein Spiel handelt und bestimmte Fortschrittbalken auch nicht unbedingt jeder milimeter sichtbar sein muss, würde ein hoher Repaint-Interval vollkommen ausreichen.

Bin für jeden Tipp dankbar.

Danke und skål
Jorgen alias VikingGod
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Qt - repaint interval setzen

Beitrag von macman »

VikingGod hat geschrieben:Hat jemand eine Idee wie ich Qt mitteile das ich den Dialog/Widgets bloß alle 500ms oder so aktualisieren soll?
Qt aktualisiert die Dialoge nur, wenn es notwendig ist oder wenn von dir ein Befehl dazu kommt. Wenn das zu häufig geschieht, dann stimmt was an deinem Programm nicht.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Ich nehme an du rechnest recht viel rum, und produzierst auch entsprechend viel Output. Diesen zeigst du immer gleich in deiner GUI an. (QLineEdit::setText() usw...).
Geh doch her und Puffer die Ergebnisse. Z.B. leg dir ein struct results an, in welchem du dann brav immer dein aktuellstes Ergebnis hältst. Nun musst du eigentlich nur einen Timer starten, bei dessen Ablauf du deine GUI neu zeichnest. Das Timerintervall kannst du natürlich frei wählen ;)

Ich hoffe du kannst das gebrauchen
Grüße
Franz
Antworten