擅长:python、mysql、java
<p>我个人会把所有必要的信号连接到相应的信号处理程序,也就是aka。插槽。在</p>
<p>他们都会标记他们的发射是“完成”的,并且可能会检查整体情况是否“完成”,在每个信号处理程序设置自己的“完成”之后,可能会有一个全局“完成”检查,如果这足够,他们将发出“全局完成”信号。在</p>
<p>然后,您还可以最初连接到“全局完成”信号,当相应的信号处理程序被触发时,您将知道该操作已完成,除非同时条件发生更改。在</p>
<p>理论设计完成后,你会得到这样的东西(伪代码)</p>
<pre><code>connect_signal1_to_slot1();
connect_signal2_to_slot2();
...
connect_global_done_signal_to_global_done_slot();
slotX: mark_conditionX_done(); if global_done: emit global_done_signal();
global_done_slot: do_foo();
</code></pre>
<p>您可能还可以通过只有两个信号和插槽来简化,即:一个用于根据传递的参数“标记”本地信号完成的本地done操作,然后还有“global done”信号和插槽。在</p>
<p>不同的是语义,是使用带一个信号和时隙的参数,还是使用没有参数的多个信号和时隙的参数,但原理上是相同的。在</p>