首页 » 99链接平台 » Qt如何嵌入其他程序的窗口?(窗口嵌入程序参数程序员)

Qt如何嵌入其他程序的窗口?(窗口嵌入程序参数程序员)

落叶飘零 2024-11-16 03:25:36 0

扫一扫用手机浏览

文章目录 [+]

1.首先获得外部程序的句柄,使用windows的API FindWindow。

FindWindow有两个参数,第一个是外部窗口的类名,第二个是外部窗口的标题。
如果不知道以上两个参数,可以使用spy++工具查看:

打开spy++,点击望眼镜图标,弹出小窗口。
然后拖动上图2所示的图标到窗口上就会显示窗口的信息。

Qt如何嵌入其他程序的窗口?(窗口嵌入程序参数程序员) 99链接平台
(图片来自网络侵删)

2.使用QWindow的静态函数fromWinId将外部窗口转化为QWindow。
fromWinId的参数是WId类型的,可以将HWND直接强转为WId。

3.使用QWidget的静态函数createWindowContainer()将外部窗口嵌入到Qt的程序中。
createWindowContainer有三个参数,第一个参数就是第二步获得的QWindow指针。
第二个参数是窗口的父窗口,也就是 要将外部程序嵌入到哪个widget中。
第三个参数是窗口标志。

例:将QtCreator嵌入到应用程序中,首先通过spy++获得QtCreator窗口的类名为Qt5QWindowIcon。
关键代码如下:

例子将QtCreator窗口嵌入到bottom中,然后将bottom和btnTest按钮加入到布局中。
程序运行后QtCreator消失不见,直到应用程序启动后,QtCreator的窗口嵌入到应用程序中(真是个奇怪的例子)。
例子运行结果:

经过测试,被嵌入的程序显示和鼠标事件并不理想,有待进一步研究。

标签:

相关文章

女员工瞬间慌了神(领导齐鲁万元锦旗公司)

1月25日,看着挂在墙上的锦旗,丁勇明白,他肩上的担子更重了。丁勇是莘县公安局莘州派出所副所长,几天前,一名女子将一面制作精良的锦...

99链接平台 2024-12-07 阅读107 评论0