QTimer::singleShot
QTimer::singleShot(10, this,SLOT(eventOperation()));
单singleShot,表示它只会触发一次,发出一次信号,然后来执行槽函数。
如果把槽函数设置成eventOperation(),那么当定时器到达时候,就会执行这个函数,在这个函数中定时器又会再次发出信号,然后执行槽函数eventOperation,这样循环往复的,所以这是一个每隔10毫秒就执行一次的循环。一般我们会在线程定时刷新的操作里面使用这个函数。
[static] void QTimer::singleShot(int msec, const QObject *receiver, const char *member)
这个静态函数在一个给定时间间隔 msec(毫秒) 之后调用一个槽。
用法1 :
假设类A有个槽函数 function() { }
我们要在10s之后执行它
就可以: QTimer::singleShot(10*1000,this, &A::function());
用法2:
实现循环
槽函数中还是singleShot 即:
function(){ QTimer::singleShot(10*1000,this, &A::function()); }
但是为了让循环可控,应该加个条件
bool condition = true; function(){ if(condition){ QTimer::singleShot(10*1000,this, &A::function()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2021-03-10 设备接口总汇(含实物图)