Gracias por su consejo, pero he encontrado otra solución. Escribí mi propia clase my_timer, que simplemente tiene el temporizador secundario interno y se apaga cada segundo. En mi ventana principal, conecto este tiempo de espera con una función que actualiza la pantalla del usuario.
El my_timer.cpp:
#include "my_timer.hpp"
my_timer::my_timer(QWidget *parent) : QTimer(parent)
{
notifier = new QTimer;
}
my_timer::~my_timer()
{
//...
}
QTimer* my_timer::get_notifier()
{
return notifier;
}
void my_timer::start(int msec)
{
QTimer::start(msec);
notifier->start(1000);
}
void my_timer::stop()
{
QTimer::stop();
notifier->stop();
}
Y en mi main_window.cpp:
void main_window::setup_connects()
{
// ...
connect(m_timer->get_notifier(), SIGNAL(timeout()), this, SLOT(on_update_label()));
// ...
}
void main_window::on_update_label()
{
if(m_timer->isActive())
{
if(remaining_secs > 1)
{
remaining_secs--;
}
else
{
remaining_secs = spin_box->value();
}
update_label();
}
}
void main_window::update_label()
{
m_time_string = QString("Remaining time until next execution: %1").arg(remaining_secs);
m_time_label->setText(m_time_string);
}
Hay [REMAININGTIME] (http://qt-project.org/doc/qt-5.0/qtcore/qtimer.html#remainingTime-prop) propiedad de QT5 –