QTimer能否在启动时发射信号?

加盾男爵 2017-05-27 10:56:04
这里有个计时器,每隔一秒后会发射信号timeout(),但问题是第一个信号会在启动后的第一秒发射,但我希望启动的时候,也就是第0秒的时候就发射第一个信号,有木有办法?
...全文
258 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklinux 2017-05-27
  • 打赏
  • 举报
回复
你的目的不是希望可以让那个槽函数可以在定时器启动时触发吗
加盾男爵 2017-05-27
  • 打赏
  • 举报
回复
引用 1 楼 jklinux 的回复:
定时器信号发出后会触发连接的槽函数吧? 直接调用连接信号的槽函数不就可以了吗
但问题是,定时器启动时不会发射信号啊。。 比如定时器的间隔设定为2秒,定时器在0秒时启动(timer->start()),那这个定时器的第一个信号发射的时间实在2秒,而我希望第一个信号发射的时间是在0秒,也就是说定时器启动的时刻就发射第一个信号
jklinux 2017-05-27
  • 打赏
  • 举报
回复 1
定时器信号发出后会触发连接的槽函数吧? 直接调用连接信号的槽函数不就可以了吗
  • 打赏
  • 举报
回复
是的,如果单单调start,会等待interval秒后才发timeout信号,如果想要即使启动后第一时间发射,直接调timeout对应的槽函数即可。
feiyangqingyun 2017-05-27
  • 打赏
  • 举报
回复 1
你在timer->start()这行代码后面紧跟着写那个timer的槽函数即可,不就实现了你要的效果么?二楼已经回答的很清楚咯! 比如 timerRead = new QTimer(this); connect(timerRead, SIGNAL(timeout()), this, SLOT(readData())); timerRead->start(); readData();

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧