Как создать таймер, который можно приостановить/возобновить с помощью QTimer?

Вот что у меня есть до сих пор

timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, [&slider, sliderDisplay]() {
     // increment slider value and update display, reset to min slider value once at max
});
timer->start(50);

Как я могу приостановить/возобновить этот таймер, возможно, щелкнув виджет кнопки?


person goldenburrito    schedule 08.10.2020    source источник
comment
@AlanBirtles На самом деле это не дубликат, данный ответ очень старый и, по моему мнению, устаревший (и слишком сложный). Более того, OP хочет приостановить/возобновить QTimer, а не QElapsedTimer...   -  person Fareanor    schedule 08.10.2020


Ответы (1)


нет прямого способа приостановить/возобновить. Когда вы посмотрите на документы, вы заметите, что можете просто начать /остановка. Однако, если вы решите пойти дальше, вы можете прочитать оставшееся время интервала, используя его метод absoluteTime().

Что касается нажатия, чтобы манипулировать им довольно просто. QPushButton предлагает сигнал clicked(), вы просто подключаете его к своему собственному слоту, который где-то хранит оставшееся время, а затем при другом щелчке вставляет значение в метод start() QTimer.

person Artur Wawrowski    schedule 08.10.2020