【问题标题】:Parenting a Qt application to another application将 Qt 应用程序与另一个应用程序建立关系
【发布时间】:2015-01-19 14:45:57
【问题描述】:

这是outstanding question 的后续行动,解决方案似乎是我必须让我的 Qt 应用程序成为另一个应用程序的子应用程序,特别是具有输入焦点的活动窗口。我需要这样做,以便我的 Qt 应用程序自动获得输入焦点,而无需用户先单击它。 (这是必要的,因为 Qt 应用程序是由后台进程启动的。)

我知道QWinWidget——“一个可以是本机 Win32 小部件的子级的 Qt 小部件”。不幸的是,我的应用程序是基于 QMainWindow 的,没有明显的方法可以使它从 QWinWidget 派生。

【问题讨论】:

  • @AlexanderVX 感谢您的回复,但我不太明白您的解释。你能再试一次吗?

标签: windows qt winapi


【解决方案1】:

解决方案似乎是我必须让我的 Qt 应用程序成为另一个应用程序的子应用程序,特别是具有输入焦点的活动窗口...

其他进程应用程序在自己的画布内捕获某些窗口的类似 Win32 解决方案通常由 SetParent API 调用驱动。这是one。它适用于 Qt 小部件中的其他进程渲染,但您需要反过来。你如何得到那个 Qt 窗口句柄?好吧,对我来说 QWidget::winId() 甚至在 Qt 5.3 中也可以工作,但我最近偶然发现了 discussion 并且有点困惑它是否总是有效。无论如何,你需要在你的 Qt 应用程序中get an active window,然后才能获得它应该是窗口句柄的 winId()。

附: Olumide,请忽略我最初的评论。我想,反过来,哪个应用程序父哪个窗口,结果非 Qt 需要 Qt。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多