gpt4 book ai didi

qt4 - 从不同线程访问 Qt 小部件

转载 作者:行者123 更新时间:2023-12-02 09:00:17 24 4
gpt4 key购买 nike

在 Qt 中,对象属于创建它的线程。我们需要从后台线程访问主线程中创建的控件。然而,一旦我们引用该对象,应用程序就会进入挂起状态。请让我知道如何在未创建控件的不同线程中访问和修改控件。

提前致谢。

最佳答案

好吧,我不能同意。 Qt 明确表示你不能从主线程以外的其他线程访问 gui。有两种方法可以实现您的需求。

  1. 在线程和主窗口(即主窗口插槽)之间创建 Qt::QueuedConnection updateProgressBar(int) ,线程信号updateProgressBar(int) 。你像这样建立连接 connect(workerThread, SIGNAL(updateProgressBar(int)), mainWindow, SLOT(updateProgressBar(int)), Qt::QueuedConnection)您还可以将工作线程信号直接连接到要更新的小部件
  2. 定义您自己的自定义事件(您的自定义事件类型值必须是 >= QEvent::User<= QEvent::MaxUser ),在主窗口中重新实现 customEvent 并正确处理这些事件。通过 QCoreApplication::postEvent(mainWindow, yourCustomEvent) 将事件传递到您的主窗口(然后您需要指向主窗口对象的指针)

关于qt4 - 从不同线程访问 Qt 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1769674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com