终止计时器由 startTimer() 启动
kill timer started with startTimer()
我有一个计时器,我在我的start((函数中启动它。它控制一个timerEvent函数,但我无法阻止它。我尝试了 killTimer((,但我不知道它的 ID。
startTimer(60);
void Game::timerEvent(QTimerEvent *){}
killTimer(0);
killTimer(0( 不会返回错误,但每隔一个 id 都会返回错误,但它仍然不会杀死计时器。有没有办法通过函数获取计时器 ID?错误:QObject::killTimer((:错误:计时器 ID 1 对对象 0x1c81bff8(游戏、(无效,计时器尚未被杀死
编辑://小例子
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]);}
}
如果你看一下startTimer
的定义,你会发现它说:
启动计时器并返回计时器标识符,如果无法启动计时器,则返回零。
因此,您需要使用它返回int
killTimer
int timerId;
timerId = startTimer(60);
killTimer(timerId);
相关文章:
- 如何创建一个空的全局类并在启动时实例化它
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- 使用 std::string () const 函数启动线程或未来
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- 如何创建线程序列以按照启动顺序执行任务?
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- 在挂钩启动新线程时解除挂钩进程
- 程序无法启动,因为缺少 libmpc-3.dll
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- QSerialPort 在应用程序启动之前正在使用中
- 无法在 Arch Linux 中启动虚幻引擎 4
- C++关于指针和使用函数将它们启动到堆的行为究竟是什么?
- 如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
- 程序在使用 system() 启动另一个可执行文件时停止
- Qt 和 Android - 如何使用 Qandroidjniobject 启动相机
- Q没有管理权限的 exe 无法启动维护工具
- 启动类函数作为失去引用的线程
- 终止计时器由 startTimer() 启动
- QT线程:获取QObject::startTimer:计时器无法从另一个线程启动警告