Вы должны использовать QTimer:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton button("Press me");
QTimer timer;
timer.setSingleShot(true);
timer.setInterval(3 * 1000);
QObject::connect(&button, &QPushButton::pressed, &timer, [&timer](){
timer.start();
});
QObject::connect(&button, &QPushButton::released, &timer, [&timer](){
timer.stop();
});
QObject::connect(&timer, &QTimer::timeout, [](){
qDebug() << "shutdown";
});
button.show();
return a.exec();
}