我有一个包含几个QMainWindow的QDockWidgets。每个DockWidget包含其他几个第三方小部件(我没有访问源代码的权限)。其中一些小部件消耗焦点和鼠标事件。我的问题是确定用户何时单击某个DockWidgets。在eventFilter上安装DockWidget不能工作,因为DockWidget的一些孩子会消耗相关的事件。是否有确定“活动”DockWidget的方法?
发布于 2013-10-22 07:27:24
使用QWidget获取具有焦点的QApplication::focusWidget()。
你可以用这样的东西:
QWidget* wid = QApplication::focusWidget();
QDockWidget* dock = 0;
while (dock != mainWindow && wid != 0)
{
dock = qobject_cast<QDockWidget*>(wid);
if (dock)
break; // its a QDockWidget
wid = wid->parent();
}https://stackoverflow.com/questions/19511051
复制相似问题