擅长:python、mysql、java
<p>信号和插槽存在的原因是您不能从应用程序的任何其他线程(除了UI线程)更改GUI。在</p>
<p>如果你有一些重CPU密集型计算要做,或任何任务等待IO或类似的。。。如果您在UI线程中执行此操作(例如,如果您获取一个url或其他持续一段时间的东西),那么UI线程将很忙,GUI事件循环将无法自我更新,因此GUI看起来将冻结。在</p>
<p>做这种手术。您可以在单独的(后台工作线程)线程中执行它们,这样UI线程就可以继续更新GUI。在</p>
<p>现在的问题是,除了UI线程之外,您无法从任何其他线程访问GUI元素并更改它们的状态。所以引入了信号和时隙。当您发出一个信号时,它被保证在UI线程中被捕获,并且插槽将在UI线程中执行。在</p>
<p>我不确定您在示例中要实现什么,但这是信号和插槽存在的主要原因。基本上,UI线程应该只处理UI,而其他一切都应该在后台工作线程中完成,该线程发送的信号被UI线程捕获,更新GUI的槽在UI线程中执行。在</p>