我正在为PyQt 4.8.6
使用Python 2.7.9
绑定。我想在QtOpenGL.QGLWidget
:
class OpenGLWidget(QtOpenGL.QGLWidget):
def __init__(self, parent=None):
QtOpenGL.QGLWidget.__init__(self, parent)
# context menu properties
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
def contextMenuEvent(self, event):
self.popMenu = QtGui.QMenu(parent=self)
print self.popMenu.sizeHint()
print self.popMenu.size()
self.popMenu.setFixedWidth(100)
self.popMenu.setFixedHeight(100)
print self.popMenu.size()
self.popMenu.addAction(QtGui.QAction('Refresh', self.updateGL()))
self.popMenu.addSeparator()
self.popMenu.addAction(QtGui.QAction('test2', None))
self.popMenu.exec_(event.globalPos())
def mousePressEvent(self, event):
self.last_pos = QtCore.QPoint(event.pos())
if event.button() == QtCore.Qt.RightButton:
self.contextMenuEvent(event)
打印出来:
>>> PyQt4.QtCore.QSize(2, 2)
>>> PyQt4.QtCore.QSize(100, 30)
>>> PyQt4.QtCore.QSize(100, 100)
上下文菜单看起来是空的,如下所示:
我想知道如何将上下文菜单大小设置为可调整,也可以从初始设置中看到?你有什么想法为什么里面没有菜单文字(功能)?我也在树视图中使用上下文菜单,它工作正常,但在这里我有一个问题。如果我设置了固定的菜单大小,则菜单小于坐标系轴的字母。
答案 0 :(得分:0)
看起来定义动作的方法并不是很好,尽管我在一个例子中找到了它。上下文菜单项(操作)应定义为:
_updateGLAction = popMenu.addAction("Refresh")
_updateGLAction.triggered.connect(self.repaintGL)