|
|
1
2
我先从你的开始
第二个问题
,说你的
心理意象
部分正确,因为涉及队列,但并非总是如此。发出信号时,有三种可能的方法调用连接的插槽,其中两种方法使用事件队列(A
现在到
第一个问题
:在任何情况下,当发出信号时,都会遍历连接列表(属于信号发射器),并使用上面提到的三种方法之一逐个调用插槽。无论何时建立或断开连接,列表都将更新,但这必然发生在发出信号之前或之后。简而言之:在发出信号后,成功阻止对已连接插槽的调用的机会很小,至少不会中断与
如果你想进一步挖掘,从
ConnectionType enum documentation
其中,三种基本类型的连接(直接连接、排队连接和排队阻塞连接)都得到了很好的解释。一
连接类型
不能指定为的第五个参数
关于 第三个问题 :我手头没有要显示的基准测试,因此我将给出一个所谓的 主要基于意见 回答,从imho开始的回答。我认为 信号/插槽 领域是那些 保持简单 规则做规则,你的 重新连接 模式似乎使事情比需要的复杂得多。正如我上面所暗示的,当建立连接时,一个连接对象被附加到一个列表中。当信号发出时,所有连接的插槽将以某种方式被依次调用。所以,为什么不先连接所有项目,然后发出信号,然后断开所有项目,而不是在循环中的每个周期断开/重新连接/发出? 我希望我的(长时间的,也许是TLDR)回答能有所帮助。读得好。 |
|
|
NoamShabat · 有没有办法转换QtCore。问题。字符串的键 2 年前 |
|
|
Vlad · 如何使小部件的PyQt事件预先运行? 2 年前 |
|
|
Shane O Neil · 为什么PyQt5没有显示按钮? 3 年前 |
|
|
chacoff · Qdatastream缓冲区:十六进制输出不正确 3 年前 |
|
|
Toloka · Qpainter绘制图像边界不透明 3 年前 |