В этом случае вы можете использовать что-то вроде почасового таймера, подключенного к функции, или лямбда, который проверяет текущую временную точку по отношению к цели ...
/*
* We want to trigger some event one year from now.
*/
auto endpoint = QDateTime::now().addYears(1);
QTimer hourly_timer;
QObject::connect(&hourly_timer, &QTimer::timeout,
[endpoint]()
{
if (QDateTime::now() >= endpoint) {
/*
* Target time reached. Do whatever...
*/
}
});
hourly_timer.start(3600 * 1000);