0

我想要一个仅持续 20 秒的弹出窗口。我认为使用 QTimer,但是否可以设置指示剩余秒数的动态消息?

4

1 回答 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 回答