Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] GUI während einer Schleife aktualisieren



rtsx
28-09-2005, 10:58
Hallo,

sorry das ich schon wieder anfrage aber ich habe ein kleines Problem.
Ich habe ein Programm das auf Aufruf eine Messreihe aufnimmt und es funktioniert
soweit auch erstmal, nur möchte ich noch eine Ausgabe auf der GUI (lCDNumber1)
mit den jeweiligen Werten haben, es zeigt mir aber immer nur den letzten Wert an.

Hier mal der CodeAbschnitt:


for (int i = 0 ; i < anzahl ; i++)
{
wert = sd_20->abfrage(1); // sd_20 liefert einen double Wert zurueck
lCDNumber1->display(wert);
zdatenlog->schreibe_daten (i*distanz, wert); // zdatenlog schreibt die angekommenen Daten in ein File
sd_20->verzoegerung(distanz); // hier wird eine verzögerung der Messung herbeigefuehrt
}

Kann ich die Aktualisierung in der Schleife mit irgend einem Befehl aktivieren, oder muss ich mich in Threads einarbeiten?

schonmal Danke
Tobias

EDIT:
OK ich hab grad festgestellt ich muss eh mit Threads anfangen, da mein 2tes Fenster einfriert während das erste eine Operation ausführt :(
Davon abgesehn würde es mich trotzdem noch interessieren ob es eine Funktion wie ich oben beschreibe gibt.

peschmae
28-09-2005, 12:44
Die Funktion die du suchst ist die da:


void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents ) [static]


kannst sogar (in beschränktem Ausmass) festlegen welche Events verarbeitet werden sollen.

MfG Peschmä

anda_skoa
28-09-2005, 13:12
Wenn der einzelne Schritt schnell zu bearbeiten ist, kann man statt Threads auch mit QTimer arbeiten (mit Timeout = 0).

Dann hat die Applikation zwischen jedem Schritt Zeit, die Eventloop zu bearbeiten usw.

Wenn die einzelnen Schritte lange dauern, so >= 100ms, dann wird es kritisch, da ist man dann mit Threads besser unterwegs.

Ciao,
_