我遵循MVC设计。我有三个控制器部件,它们在主GUI线程中运行。还有另一个工作线程处理一些I / O的东西。一旦工作线程完成其任务,所有三个控制器都应该得到通知。有谁能建议我解决这个问题?
我正在使用PyQT。那有什么办法吗?订阅从工作线程到多个控制器部分的事件?
答案 0 :(得分:1)
最简单的方法是在工作线程中发出信号。从工作线程的信号到控制器的插槽创建三个连接,你应该好好去。
Qt中的信号/插槽连接是线程安全的,可以按预期工作。只有插槽所在的对象所在的线程需要有一个事件循环,这很好,因为在你的情况下,插槽属于控制器,它位于具有事件循环的GUI线程中。
有关详细信息,请参阅QObjects and threads上的文档。