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

时间:2015-08-16 13:50:26

标签: c++ qt

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

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

我有一些未解决的问题:

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

  2. 由于嵌入式窗口有自己的大小,有没有办法获得嵌入式窗口的原始大小?因为我想调整我的qt应用程序以显示其完整内容。

  3. 环境是Ubuntu 14.04和Qt 4.8。

1 个答案:

答案 0 :(得分:0)

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