关于同时执行多个EMIT,如何顺序执行?

weixin_38067813 2019-09-19 03:44:14
现在又多个EMIT,待执行。我想一个一个执行,即前一个EMIT函数执行完毕后,下一个再执行。我说的是信号槽函数执行完。例如 : emit OnUpdate(); 我想Update执行完后,再执行下面的emit命令。可否有方法??
...全文
661 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38067871 2019-09-19
  • 打赏
  • 举报
回复
你可以调试,单步运行程序,看看emit顺序。如果不用多线程,emit是按先后顺序的,也就是槽函数执行完,才能emit下一个信号。
weixin_38084345 2019-09-19
  • 打赏
  • 举报
回复
signal/slot 本身就是顺序执行的。除非你的slot在其它的线程里面。看看我的这篇博文:http://besteam.im/blogs/article/41/ ,有助于你理解signal/slot的机制。另外,你也可以写几个测试程序看看。在slot函数里面写上`qDebug()<<"顺序号"`
weixin_38090823 2019-09-19
  • 打赏
  • 举报
回复
我是说,emit OnOpen,这个肯定要等用户打开了文件,才能往下执行 emit OnShowDataCPP 代码肯定是这写的: emit OnOpen;emit OnShowData;如何确保,OnOpen执行完了,才执行OnShowData
weixin_38095754 2019-09-19
  • 打赏
  • 举报
回复
引用第3楼禁止关注于2012-04-12 11:21发表的  :我是说,emit OnOpen,这个肯定要等用户打开了文件,才能往下执行 emit OnShowDataCPP 代码肯定是这写的: emit OnOpen;emit OnShowData;....... 就是这个顺序。
weixin_38106215 2019-09-19
  • 打赏
  • 举报
回复
引用第3楼禁止关注于2012-04-12 11:21发表的  :我是说,emit OnOpen,这个肯定要等用户打开了文件,才能往下执行 emit OnShowDataCPP 代码肯定是这写的: emit OnOpen;emit OnShowData;....... 如果你的表述准确的话,肯定是按照这个顺序执行的。信号和槽都是普通的 成员函数emit OnOpen();emit OnShowData();和 OnOpen();OnShownData();完全等价。借助C++常识,你应该坚信他们的顺序。

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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