【问题标题】:prevent QApplication::exec from blocking main thread防止 QApplication::exec 阻塞主线程
【发布时间】:2016-11-29 02:10:23
【问题描述】:

我有一个可在主线程上创建多个 GUI 的可视化 c++ 程序。我想在所有其他 GUI 旁边显示一个 QWidget。目前,如果我调用 QApplication.exec(),它会阻塞主线程,直到我关闭窗口。有什么办法可以防止exec函数阻塞主线程或者不调用exec就使用QWidget?

【问题讨论】:

  • 不,这不是 GUI 的工作方式。这听起来像是一个 XY 问题——试着解释一下你想要完成什么。
  • 是否可以在不同的线程上启动 QApplication.exec()?

标签: qt opencv visual-c++ qwidget qapplication


【解决方案1】:

该方法没有阻塞主线程,相反:它允许事件循环执行,确保 UI 保持响应。

当显示小部件时,所有其他 GUI 都将响应,因为 Qt 的事件循环与本机消息队列完全互操作。

如果您希望在对话框小部件关闭时发生某些事情,请将相关代码连接到例如对话框的accepted() 信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多