Ich versuche, den Timer um eine bestimmte Zeit wie 02:30 zu starten. Jeden Tag startet er um 02:30.
Ist das möglich? Haben Sie eine Idee?
Vielen Dank.
Ich versuche, den Timer um eine bestimmte Zeit wie 02:30 zu starten. Jeden Tag startet er um 02:30.
Ist das möglich? Haben Sie eine Idee?
Vielen Dank.
QTimer behandelt spezifische Tageszeiten nicht nativ, aber Sie könnten es in Verbindung mit QDateTime verwenden, um zu bekommen, was Sie wollen. Das heißt, verwenden Sie QDateTime-Objekte, um herauszufinden, wie viele Sekunden (gerade jetzt) und 2:30 Uhr liegen (QDateTime::msecsTo() scheint hier besonders passend zu sein), dann stellen Sie Ihren QTimer so ein, dass er nach dieser Anzahl von Sekunden abläuft. Wiederholen Sie dies bei Bedarf.
Die Lösung von Jeremy ist in der Tat elegant, aber sie berücksichtigt nicht die Sommerzeit. Um dagegen vorzugehen, sollten Sie jedes Stunden ein Timer-Ereignis auslösen und die Uhrzeit überprüfen. Berechnen Sie den Unterschied zum Ziel, wie Jeremy vorschlägt, und wenn er innerhalb der nächsten Stunde liegt, stellen Sie einen Timer ein, und deaktivieren Sie den stündlichen Timer.
Wenn nicht, warten Sie einfach darauf, dass der stündliche Timer wieder auslöst.
Pseudo-Code:
Holen Sie die Uhrzeit
Berechnen Sie den Unterschied zwischen der Zielzeit und der aktuellen Uhrzeit
Wenn der Unterschied < 1 Stunde beträgt:
Setzen Sie den Timer, um nach Differenz Sekunden auszulösen
Wenn es sich um ein wiederholendes Ereignis handelt, starten Sie den stündlichen Timer neu
Andernfalls:
Starten Sie den Überwachungstimer, um diese Berechnung nach einer Stunde erneut durchzuführen
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.