Anzeige:
Ergebnis 1 bis 3 von 3

Thema: [Qt] GUI während einer Schleife aktualisieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.09.2005
    Beiträge
    23

    [Qt] GUI während einer Schleife aktualisieren

    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:

    PHP-Code:
    for (int i anzahl i++)
    {
    wert sd_20->abfrage(1); // sd_20 liefert einen double Wert zurueck
    lCDNumber1->display(wert);
    zdatenlog->schreibe_daten (i*distanzwert); // 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.
    Geändert von rtsx (28-09-2005 um 12:41 Uhr)

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Die Funktion die du suchst ist die da:
    Code:
    void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents )  [static]
    kannst sogar (in beschränktem Ausmass) festlegen welche Events verarbeitet werden sollen.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •