为另一个应用程序育儿Qt应用程序

问题描述:

这是一个跟进到outstanding question,解决方案似乎是,我必须使我的Qt应用程序为另一个应用程序的孩子,特别是具有输入焦点的活动窗口。我需要这样做,以便我的Qt应用程序自动具有输入焦点,而用户不必先点击它。 (这是必要的,因为Qt应用程序是由后台进程启动的。)为另一个应用程序育儿Qt应用程序

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

+0

@AlexanderVX感谢您的回复,但我并不真正了解您的解释。你可以再试一次吗? – Olumide 2014-11-22 00:13:48

的解决方案,它似乎是我必须让我的Qt应用程序其他应用程序的孩子,特别是具有输入焦点活动窗口...

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

P.S.奥鲁米德,请解雇我的初步评论。我想,反过来说,什么应用程序的父母是什么窗口,事实证明非Qt需要Qt。