首页 > 解决方案 > PyQt5:pyqtSignals 线程安全吗?

问题描述

我正在学习如何使用 PyQt5,但有很多问题让我无法理解。

我已经开始实现 QThreads 来替换我在 UI 中一直使用的线程,因为我意识到混合线程和 QThreads 可能会在以后导致问题,并同时开始使用 pyqtSignal

到目前为止,我已经看到 pyqtSygnal 需要在类级别上实现才能工作(将它放在类构造函数中不起作用)

在我目前使用的架构中,我有一个 pyqtSignal,它在主线程中实例化,然后被所有子线程使用。这是因为有一个班级负责我所有程序的日志。

我不确定这是否是一个好的实现。

这是我的问题:

标签: python-3.xpyqt5signals-slots

解决方案


信号是 QObject 中线程安全的少数元素之一,因此没有必要保护数据。因此,您可以将不同类型的信号连接到同一个插槽。

由于信号是线程安全的,因此 Qt 建议与存在于不同线程中的 QObject 进行通信。


推荐阅读