Wywoływanie metody co określony czas

Wywoływanie metody co określony czas
Blooser
  • Rejestracja: dni
  • Ostatnio: dni
0

Heja!

Mam dwa problemy

  1. Chciałbym wywoływać metodę co sekunde na czas nieokreślony, albo do czasu użycia przerwania.
Kopiuj
QTimer::singleShot(1000, this, metoda);

Dla przykładu, po naciśnięciu Spacji, cały czas co sekunde wywołuje się metoda
2. Chciałbym zamienić milisekundy na format czasowy z przeliczeniem, ms -> hh:mm:ss

Kopiuj
int ms = 5000;

Format: 00:00:05

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
2

użyj start() zamiast singleShot().

http://doc.qt.io/qt-5/qtimer.html

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

Dodam tylko, że do tego potrzebujesz instancji QTimera. Przykład użycia np. tutaj: https://github.com/KrzaQ/kalendarzQT/blob/kq-timer/kalendarz.cpp#L16

Drugi punkt:

Kopiuj
QTime t;
t.addMSecs(5000);
auto str = t.toString("hh:mm:ss");
Blooser
  • Rejestracja: dni
  • Ostatnio: dni
0

Jeszcze do tego QTime, czy po wywołaniu start(), mogę jakoś potem to zapauzować, zamrozić aktualny stan?

W sensie, jeśli wywołam elapsed(), to cały czas będzie taka sama wartość, zegar stoi w miejscu

CZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 231
0

http://doc.qt.io/archives/qt-5.7/qtimer.html#stop - chyba, a jak nie to sprawdź dokumentację.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.