QTimer Startzeitpunkt

8

Ich versuche den Timer zu einer bestimmten Zeit wie 02:30 Uhr zu starten. Jeden Tag beginnt es um 02.30.

Ist es möglich? Hast du irgendeine Idee?

Vielen Dank.

    
selda 01.03.2011, 07:48
quelle

3 Antworten

9

QTimer behandelt nicht bestimmte Tageszeiten nativ, aber Sie können es in Verbindung mit QDateTime verwenden, um zu erhalten, was Sie wollen. Das heißt, verwenden Sie QDateTime-Objekte, um herauszufinden, wie viele Sekunden zwischen (momentan) und 2:30 (QDateTime :: msecsTo () besonders geeignet sind) und setzen Sie Ihren QTimer nach diesen vielen Sekunden ab. Wiederholen Sie dies bei Bedarf.

    
Jeremy Friesner 01.03.2011 07:54
quelle
6

Abhängig von der benötigten Auflösung können Sie einen gewöhnlichen QTimer verwenden, der z. B. jede Minute auslöst.
Im timerEvent können Sie prüfen, ob Sie zur richtigen Zeit sind (mit QDateTime) und das erforderliche Ereignis auslösen.

    
Kurt Pattyn 01.03.2011 11:44
quelle
1

Die Lösung von Jeremy ist zwar elegant, berücksichtigt aber nicht die Sommerzeit. Um dagegen zu warnen, sollten Sie jede Stunde ein Timer-Ereignis auslösen und die Wanduhr überprüfen. Berechnen Sie das Delta zum Ziel, wie Jeremy es vorschlägt, und wenn es innerhalb der nächsten Stunde fällt, stellen Sie einen Timer zum Auslösen ein und deaktivieren Sie den Stundenzähler.
Wenn nicht, warten Sie einfach darauf, dass der Stundenzähler erneut ausgelöst wird.

%Vor%     
Kurt Pattyn 23.08.2013 06:20
quelle

Tags und Links