2013-07-08 174 views
0

我试图检测鼠标在分离器布局中移动的时间。我设法通过在父窗口小部件中重载mouseMoveEvent函数来获得鼠标位置,但当鼠标位于分隔符的“句柄”(可以更改其尺寸的位置)时,它不起作用。Qt:从Qsplitter获取MouseMove事件

我也试过用eventFilters但它似乎像以前的工作方式......

是否有人有类似的行为吗?我可能做错了什么?

感谢advance.-

+0

你为什么要这样做? –

+0

我使用时间线部分创建项目。每个时间轴'轨道'包含一个QSplitter,包含3个区域:Free-Media-Free。我在顶部也有一个规则,我想在鼠标位于时间轴区域时显示鼠标位置。 –

回答

0

如果你想获得移动鼠标而不按鼠标键,您需要启用鼠标跟踪父控件和所有子控件。例如,我创建了一个带有2个标签的小工具,放置在分离器中。在构造函数中,我需要做到以下几点:

setMouseTracking(true); 
ui->label->setMouseTracking(true); 
ui->label_2->setMouseTracking(true); 
ui->splitter->setMouseTracking(true); 

而且现在的家长控件的mouseMoveEvent接收所有的鼠标移动。

+0

谢谢Riateche!显然,我的所有子控件都启用了鼠标跟踪功能(至少在设计器面板中),除了分离器的控制柄之外,我还会收到所有的鼠标移动...如果这对您有用,我将重新检查项目中的所有内容,使用你的方法...再次感谢! –