Xav*_*rey 1 c++ qt timer qtimer
完成后,我更新倒计时计时器,timerEvent(QTimerEvent *e)我调用了 ,killTimer(timerID)但timerEvent()仍在调用中。那么杀死它的正确方法是什么?
编码:
void MainWindow::timerEvent(QTimerEvent *e)
{
Q_UNUSED(e);
static uint16_t u16RemTime = MAX_WARMUP_TIME_IN_SECS;
if((true == isWarmUpStarted) && (u16RemTime > 0))
{
u16RemTime--;
objptrSplashScreen->SetTime(u16RemTime);
}
else
{
//Still running
qWarning("\n\n\n\n\n WARM UP TIMER RUNNING \n\n\n\n\n");
killTimer(warmUpTimerID);
}
}
Run Code Online (Sandbox Code Playgroud)
如果有帮助。我有两个这样的计时器在同一个 GUI 线程中的两个不同类中运行。我将如何去杀死它?
timerEvent接收所有定时器的事件。为了区别它们,QTimerEvent类有int timerId() const方法。所以你的事件应该是这样的:
void MainWindow::timerEvent(QTimerEvent *e)
{
if (e->timerId() != warmUpTimerID)
return;
static uint16_t u16RemTime = MAX_WARMUP_TIME_IN_SECS;
if((true == isWarmUpStarted) && (u16RemTime > 0))
{
u16RemTime--;
objptrSplashScreen->SetTime(u16RemTime);
}
else
{
//Still running
qWarning("\n\n\n\n\n WARM UP TIMER RUNNING \n\n\n\n\n");
killTimer(warmUpTimerID);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |