我在QGLWidget和QTreeView上有一个自定义上下文菜单的问题。我有QTreeview和QGLWidget添加到一个常见的小部件与分配器。我用下面的代码打开上下文菜单。
setContextMenuPolicy(Qt::CustomContextMenu);
QMenu::exec(actions, mapToGlobal(QPoint(x, y)),actions.at(0),this);
actions是QActions的列表。
在QGLWidget上按下鼠标,如果满足一定条件,鼠标光标会改变。右键打开上下文菜单后,如果在其中一个菜单项上按下鼠标,则一切正常。如果鼠标没有按在上下文菜单的一个项目上,则上下文菜单关闭并开始出现问题。问题是,当鼠标按下时,即使满足所有条件,鼠标光标也不会改变。我不确定QWidget是否在这里失去了重点。所以,我已经尝试在鼠标按下事件中设置焦点。但没有多大帮助。有什么建议可以解决这个问题吗?
谢谢!
我猜问题可能是事件没有传递给父小部件。只需在mouseReleaseEvent()
中添加以下语句QGLWidget: mouseReleaseEvent(事件);