• 6537阅读
  • 6回复

问个qt信号和槽的问题 [复制链接]

上一主题 下一主题
离线fox1987
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-15
问一个qt信号和槽的问题,目前出现的问题是:多个信号连续的发送,每个信号连接到不同的槽,发现有时候有些信号的槽没有执行,
但是如果强制再触发该信号,会发现前面没执行的信号连接的槽会再执行以便,类似于里面排队了,然后就不会立即响应强制触发的信号,
而且那些没执行的等好久也不执行,除非强制触发一个别的信号,会导致他执行。。。

不知道这样描述清楚没 。。

比如signal1 <->slot1
signal2<->slot2
signal3<->slot3

比如三个信号顺序触发,本来应该三个槽都执行,
但是发现只响应了一个
但是如果再强制触发1(比如按钮信号来触发该信号) 会发现会先执行刚才还没执行的信号连接的槽
然后直到把那些没执行完的执行完才会响应当前的。。
而且当前的又进入队列了(导致这个信号得被其他信号来push该信号连接的槽执行多遍)才能执行后续的信号

这个该怎么解决啊
是不是要设置connectiontype啊。。
该怎么处理啊。。
离线xtfllbl

只看该作者 1楼 发表于: 2010-07-15
如果是顺序触发,则顺序执行slot1->slot3,不会同时执行
上海欢迎您
离线fox1987
只看该作者 2楼 发表于: 2010-07-15
回 1楼(xtfllbl) 的帖子
主要是后面的不执行了。。
ms进入了缓存队列
一直等着。。
离线xtfllbl

只看该作者 3楼 发表于: 2010-07-15
回 2楼(fox1987) 的帖子
那你slot1执行完了么?
上海欢迎您
离线fox1987
只看该作者 4楼 发表于: 2010-07-15
slot1执行完了,但是slot2和slot3有时候不执行。。
然后如果你点击按钮触发slot1,这时候会先执行刚才没有执行的slot2
然后再点按钮执行slot3
如此。。
离线xtfllbl

只看该作者 5楼 发表于: 2010-07-15
有时候不执行。。。这句话说出来那就麻烦了,方便贴点代码上来看看么,你这么描述有点玄乎。
上海欢迎您
离线fox1987
只看该作者 6楼 发表于: 2010-07-15
回 5楼(xtfllbl) 的帖子
其实不是不执行,就是跟上面描述似的
有时候好像进入缓存队列了,
然后又别的消息触发才会导致这个执行。。。
然后那个继续进队列。。
感觉执行的效果是这样的
快速回复
限100 字节
 
上一个 下一个