我想要一个仅持续 20 秒的弹出窗口。我认为使用 QTimer,但是否可以设置指示剩余秒数的动态消息?
问问题
504 次
1 回答
1
您可以从 QDialog 继承并使用两个 QTimer 事件。第一个设置在 20 秒后触发,然后关闭对话框,第二个设置为每秒触发一次,并使用剩余时间更新 QLabel。因此,当显示 QDialog 时,您将执行以下操作:-
m_DialogClose = startTimer(20 * 1000); // 20 seconds
m_RemainingTime = startTimer(1 * 1000); // 1 second
然后在对话框中覆盖 timerEvent 函数:-
void MyDialog::timerEvent(QTimerEvent *event)
{
if(event->timerId() == m_DialogClose)
{
// close the dialog
}
else if(event->timerId() == m_RemainingTime)
{
// update the relevant QLabel text
}
}
于 2013-07-22T14:10:53.303 回答