【问题标题】:Update QThread from GUI Widgets从 GUI 小部件更新 QThread
【发布时间】:2021-07-28 20:17:50
【问题描述】:

我已经看到这个问题被反问了很多次——如何从子类 QThread 更新 GUI——但我实际上想反过来做。我有一个应用程序可以连续无限期地显示来自相机的提要,并且相机在单独的线程中运行。我使用来自 QThread 的信号在 GUI 中显示了摄像头馈送。相机控件位于主 GUI 窗口中,我希望能够将这些更新发送到已经运行的相机线程。最好的方法是什么?谢谢。

【问题讨论】:

    标签: python qt pyqt pyside


    【解决方案1】:

    如果您使用运行事件循环的默认QThread::run() 实现,那么您可以在类上创建一个槽并将其作为QueuedConnection 调用(这应该会自动发生)。

    否则,您将需要使用标准线程同步原语,例如 QMutex 来安全地从两个线程访问相同的数据。

    【讨论】:

    • 对不起,我对这些东西不太了解,但是当你说默认的 run() 实现时......我已经为我的子类 QThread 编写了自己的 run() 方法,所以什么你说还有申请吗?
    • 如果你已经编写了自己的 run 方法,那么你就不能使用 Qt 插槽系统,除非你调用 QThread::exec(),这是 run 默认调用的。
    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2013-04-21
    • 2014-03-07
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多