qt信号与槽机制

hou_jiangzhen 2012-11-15 10:56:52
请教:
1.不同信号绑定不同槽,当这些信号同时发生时,他们的槽执行顺序是什么顺序?
2.一个槽正在执行,但是还没有执行完毕,此时又发生一个信号,那么这个发生的信号所对应的槽会立刻执行吗,还是等着其他槽执行完毕,再执行呢?
...全文
241 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
q418068375 2012-11-22
  • 打赏
  • 举报
回复
哪个写在前面,哪个就先执行?
T_ccc 2012-11-21
  • 打赏
  • 举报
回复
引用 7 楼 jdwx1 的回复:
是按照连接数序,单线程里肯定是一个槽没执行完,不会有第二个信号中断第一个槽的执行。 例外是:QApp->processEvents,会导致中断当前的槽。
++1,又学习新知识了,哈哈
菜园小火车 2012-11-21
  • 打赏
  • 举报
回复
以前好像是不确定的顺序的,现在貌似按照连接的顺序。不过貌似现实中还没遇到过这个问题。
wopabe 2012-11-21
  • 打赏
  • 举报
回复
很简单,你在两个槽情况下调试下就知道了
__阿飞__ 2012-11-16
  • 打赏
  • 举报
回复
引用 7 楼 jdwx1 的回复:
是按照连接数序,单线程里肯定是一个槽没执行完,不会有第二个信号中断第一个槽的执行。 例外是:QApp->processEvents,会导致中断当前的槽。
+1 单线程里确实是排着队在进行执行的.
jdwx 2012-11-16
  • 打赏
  • 举报
回复
是按照连接数序,单线程里肯定是一个槽没执行完,不会有第二个信号中断第一个槽的执行。 例外是:QApp->processEvents,会导致中断当前的槽。
dext 2012-11-16
  • 打赏
  • 举报
回复
最新的官方解释,按照连接的顺序调用。我记得以前好像不是的。 If several slots are connected to one signal, the slots will be executed one after the other, in the order they have been connected, when the signal is emitted.
hou_jiangzhen 2012-11-15
  • 打赏
  • 举报
回复
对于第一个问题,楼主说不定,但是总得有个顺序吧,总不能同步执行吧?
hou_jiangzhen 2012-11-15
  • 打赏
  • 举报
回复
我问的是单线程的
hou_jiangzhen 2012-11-15
  • 打赏
  • 举报
回复
信号与槽的连接方式是采用默认的
dext 2012-11-15
  • 打赏
  • 举报
回复
第一个答案是不定,这个Qt文档中有,看过源代码的话,就知道应该有一个类似散列表的结构。 第二个答案是不定。因为信号和槽 可以工作在 多线程性况下 这两个问题你可以看看 QObject::connect的五参数版本
hou_jiangzhen 2012-11-15
  • 打赏
  • 举报
回复
在单线程情况下。

16,203

社区成员

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

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