【问题标题】:Force Qt Window on top of XPlane Window在 XPlane 窗口之上强制 Qt 窗口
【发布时间】:2018-07-27 18:41:40
【问题描述】:

我正在编写一个飞行模拟器应用程序。为此,我的 Qt 应用程序窗口应位于飞行模拟器应用程序窗口的顶部。

飞行模拟器(P3D、FSX、XPlane)提供 2 种不同的窗口模式,即“窗口”和“全屏”。窗口模式没问题,我可以为我的窗口设置Qt::WindowStaysOnTopHint 并且它可以工作。但是,它适用于 XPlane 全屏模式(但适用于 P3D/FSX)。

我不知道 XPlane 全屏模式的真正作用,只知道它使用 OpenGL。显然,当我单击 XPlane 窗口时,我的窗口失去了焦点。在 Windows 上,我可以使用 ALT+TAB 将其重新置于首位

我已经尝试(由计时器触发)widget->activateWindow();,但没有结果。还有什么“技巧”我可以尝试。

【问题讨论】:

标签: c++ qt opengl


【解决方案1】:

一般来说,应用程序不能强制自己到前面。它可以请求被带到最前面,但是该请求是否被批准取决于窗口管理器。

应用程序(在某些平台上)可以告诉窗口管理器它们将允许某些其他应用程序而不是它们自己被带到前面(这允许这些应用程序强制将自己带到前面而不是授予应用程序,但不能超过其他不合作的应用程序)。一般来说,这都是一件合作的事情,没有一个应用程序可以将自己的意愿强加于其他所有应用程序(恕我直言是一件好事)。

【讨论】:

    猜你喜欢
    • 2012-01-15
    • 2013-01-30
    • 1970-01-01
    • 2010-10-05
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    相关资源
    最近更新 更多