QGLWidget上的上下文菜单问题

问题描述:

QGLWidget和QTreeView上的自定义上下文菜单有问题。我有QTreeview和QGLWidget添加到一个普通的小工具与拆分器。我通过以下代码打开上下文菜单。QGLWidget上的上下文菜单问题

setContextMenuPolicy(Qt::CustomContextMenu); 
QMenu::exec(actions, mapToGlobal(QPoint(x, y)),actions.at(0),this); 

actions是QActions的列表。

当鼠标按下QGLWidget时,如果满足某些条件,鼠标光标会改变。在右键单击打开上下文菜单后,如果在菜单项之一上按下鼠标,则一切正常。如果鼠标按下没有发生在上下文菜单的某个项目上,上下文菜单关闭并且问题开始。问题是鼠标光标不会改变,即使在鼠标按下时所有条件都满足。我不确定QWidget是否失去了重点。所以,我试图在鼠标按下事件中设置焦点。但没有太大的帮助。任何建议来解决这个问题。

谢谢!

+0

你有没有尝试过重新实现QGLWidget :: contextMenuEvent(QContextMenuEvent *事件),看看它是否有所作为?这就是我创建上下文菜单的方式。 – cmannett85

+0

谢谢。是的,我已经尝试过在上下文菜单事件中创建上下文菜单,但是并不顺利。 – krishna

我想问题可能是该事件没有传递到父窗口小部件。 只需在您的鼠标添加以下语句mouseReleaseEvent()

QGLWidget :: mouseReleaseEvent(event);