将一个应用程序嵌入Qt应用程序时,如何获取mouseMoveEvent和嵌入窗口大小

Posted

技术标签:

【中文标题】将一个应用程序嵌入Qt应用程序时,如何获取mouseMoveEvent和嵌入窗口大小【英文标题】:When embed one application into Qt application, how to get the mouseMoveEvent and embed windows size 【发布时间】:2015-08-16 13:50:25 【问题描述】:

我使用 QX11EmbedContainer 来嵌入应用程序:spicec(它基于 X11)。 如下:

QX11EmbedContainer spicec;
spicec.embedClient(winId);
spicec.setMouseTracking(true);
spicec.show();

我有一些未解决的问题:

    我重新实现了mouseMoveEvent,但它不起作用(父小部件也设置了setMouseTracking(true)); 那么如何从 QX11EmbedContainer 中获取鼠标移动事件呢? 或者有什么方法可以获得鼠标移动事件,即使鼠标不在Qt窗口中(全局鼠标移动事件)?

    既然嵌入式窗口有自己的尺寸,有没有办法得到嵌入式窗口的原始尺寸?因为我想调整我的 qt 应用程序以显示其全部内容。

环境为 Ubuntu 14.04 和 Qt 4.8。

【问题讨论】:

【参考方案1】:

你可以使用QXT library,它有一个名为windowGeometry的函数,函数参数是WID.or你可以使用Xlib,函数XGetWindowAttributes也可以工作。

【讨论】:

以上是关于将一个应用程序嵌入Qt应用程序时,如何获取mouseMoveEvent和嵌入窗口大小的主要内容,如果未能解决你的问题,请参考以下文章

将ue4程序嵌入qt界面显示

嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑

嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑

嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑

如何将 IPython 解释器嵌入到在 IPython Qt 控制台中运行的应用程序中

Qt界面中嵌入其他exe程序的界面,使用Qt5