Qt: QTimer nach bestimmter Anzahl von Aufrufen stoppen



  • Hi,

    Ich habe folgendes Problem. Ich muß eine bestimmte Anzahl von Werten jeweils nach einem bestimmten Zeitinterval auslesen. Also zum Beispiel 5 Werte zwischen denen jeweils 2 Sekunden liegen.

    Ich habe versucht das mit einem QTimer zu realisieren, allerdings habe ich keine wirklich elegante Möglichkeit gefunden, ihn nachdem ich die 5 Messwerte habe wieder zu stoppen.

    Momentan habe ich folgende Lösung:

    int interval_buffer = 0;
    int interval = 2000 //2 Sekunden
    
    for(int i = 0; i < AnzahlMessungen; i++)
    {
       QTimer::singleShot((interval_buffer+=interval),this,SLOT(Messen()));
    }
    

    Funktioniert zwar, ist aber mehr so die Methode mit dem Brecheisen. Hat jemand eine Idee wie das besser geht ? Bin selber relativ neu in dieser ganzen Qt/Gui Sache....

    Danke schonnmal 😉



  • Alternative wäre evtl. einen Timer mit Intervall starten und nach n "signals" wieder beenden. D.h. eine Klasse die den Timer startet, die Signale empfängt und wieder stoppt.


Anmelden zum Antworten