• 6547阅读
  • 6回复

[提问]关于qt定时器的问题!! [复制链接]

上一主题 下一主题
离线zpzbc18
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-06
关键词: timerEvent
我先这样写定时
QTimer::singleShot(guard_delay_time*1000,this,SLOT(toPlay()));定时器启动后我在执行QTimer::stop();但是不能停止.然后我又想下边这样写if(playtimer)        {                    killTimer(playtimer);            playtimer = 0;        }        int time = guard_delay_time-5;        playtimer=startTimer((guard_delay_time-5)*1000);    启动定时器然后我在一个事件触发后调用f(playtimer)        {                    killTimer(playtimer);            playtimer = 0;        }再次执行playtimer=startTimer((guard_delay_time-5)*1000);但最后的结果是前一个定时器仍然执行,第二次启动的定时器在第一次执行完后开始执行
请问为什么
离线roywillow

只看该作者 1楼 发表于: 2012-03-06
还请把代码排版好吧……这样看着太费劲……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线zpzbc18
只看该作者 2楼 发表于: 2012-03-07
QTimer::singleShot(guard_delay_time*1000,this,SLOT(toPlay()));
定时器启动后我在执行QTimer::stop();但是不能停止
然后我又想下边这样写
if(playtimer)
{     killTimer(playtimer);
      playtimer = 0;      
}
  int time = guard_delay_time-5;      
playtimer=startTimer((guard_delay_time-5)*1000);
启动定时器然后我在一个事件触发后调用

f(playtimer) {                
    killTimer(playtimer);        
   playtimer = 0;      
}
再次执行playtimer=startTimer((guard_delay_time-5)*1000);
但最后的结果是前一个定时器仍然执行,第二次启动的定时器在第一次执行完后开始执行
请问为什么

离线xuweistudy
只看该作者 3楼 发表于: 2012-03-07
singleShot单定时器就是只触发一次
离线zpzbc18
只看该作者 4楼 发表于: 2012-03-07
哪有什么办法可以人为地停止singleShot呢??
离线guoke204

只看该作者 5楼 发表于: 2012-03-08
不明白你描述你的问题,能不能把问题说清楚些
离线zzjin

只看该作者 6楼 发表于: 2012-03-08
需要人为控制qtimer暂停重启什么的话就不要用single首推这个静态函数啊....操作一个qtimer的指针来控制啊.
快速回复
限100 字节
 
上一个 下一个