[英]kill timer started with startTimer()
我有一个计时器,它在我的 start() 函数中启动。 它控制一个 timerEvent 函数,但我无法阻止它。 我试过 killTimer() 但我不知道它的 ID。
startTimer(60);
void Game::timerEvent(QTimerEvent *){}
killTimer(0);
该功能只是检查按键。 killTimer(0) 不会返回错误,但其他所有 id 都会返回错误,但它仍然不会终止计时器。 有没有办法通过函数获取计时器ID? 错误:QObject::killTimer(): Error: timer id 1 is not valid for object 0x1c81bff8 (Game, ), timer has not been Killed
编辑://小例子
start(){
scene->setSceneRect(0,0,1200,800);
setScene(scene);
timerId = this->startTimer(60);
}
//when the game ends, i call konec();
konec(){
if(winner==1 || winnerCPU==1){
removeAllItems(); // this function attemps to stop the timer
scene->setSceneRect(0,0,1200,800);
setScene(scene);
}
//i have this on a timer also, it stats with start() but i stop the
//timer in removeAllItems()
// may this cause multiple timers IDs?
QRectF rect = scene->sceneRect();
rect.translate(avto->speed, 0);
scene->setSceneRect(rect);
removeAllItems(){ /
timer->stop();
timer2->stop();
mtimer->stop();
shifter->stop();
time->stop();
move_timer->stop();
this->killTimer(timerId);
QList<QGraphicsItem *> stvari = scene->items();
for(int i=0, n=stvari.size();i<n;i++){
if((typeid(*(stvari[i]))==typeid(Button)) || (typeid(*
(stvari[i]))==typeid(QTableView)) ||
(typeid(*(stvari[i]))==typeid(Count)) || (typeid(*
(stvari[i]))==typeid(Linija)) ||
(typeid(*(stvari[i]))==typeid(Player)) || (typeid(*
(stvari[i]))==typeid(Player2)) ||
(typeid(*(stvari[i]))==typeid(Sred)))
scene->removeItem(stvari[i]);}
}
int timerId;
timerId = startTimer(60);
killTimer(timerId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.