右键菜单代码不会运行
Right click menu code will not run
我正在尝试创建一个在我单击鼠标右键时出现的菜单,我遵循了一些教程,但是当我将它们放入我的代码中并更改它们时,它们将不起作用。
这是我的代码:
def First(self):
FirstFrame = QtGui.QFrame()
FirstFrame.setFixedSize(230,660)
# LIST VIEW FOLDER
self.folders_lv = QtGui.QTreeView()
self.folders_lv.
# DEFINE THE FUNCTION FOR FIRST FRAME
Firstbox = QtGui.QGridLayout()
Firstbox.addWidget(self.folders_lv,3,0,1,4)
Firstbox.setColumnStretch(1, 1)
FirstFrame.setLayout(Firstbox)
self.folders_lv.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showMenu())
return FirstFrame
def showMenu(self, pos):
menu= QtGui.QMenu(self)
menu.addAction(QtGui.QAction("Item 1", menu))
menu.addAction(QtGui.QAction("Item 2", menu))
menu.addAction(QtGui.QAction("Item 3", menu))
menu.popup(self.mapToGlobal(pos))
连接信号时需要传递函数object,所以去掉括号:
self.folders_lv.customContextMenuRequested.connect(self.showMenu)
此外,在 showMenu
槽中,您可能需要:
menu.popup(self.folders_lv.viewport().mapToGlobal(pos))
我正在尝试创建一个在我单击鼠标右键时出现的菜单,我遵循了一些教程,但是当我将它们放入我的代码中并更改它们时,它们将不起作用。
这是我的代码:
def First(self):
FirstFrame = QtGui.QFrame()
FirstFrame.setFixedSize(230,660)
# LIST VIEW FOLDER
self.folders_lv = QtGui.QTreeView()
self.folders_lv.
# DEFINE THE FUNCTION FOR FIRST FRAME
Firstbox = QtGui.QGridLayout()
Firstbox.addWidget(self.folders_lv,3,0,1,4)
Firstbox.setColumnStretch(1, 1)
FirstFrame.setLayout(Firstbox)
self.folders_lv.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showMenu())
return FirstFrame
def showMenu(self, pos):
menu= QtGui.QMenu(self)
menu.addAction(QtGui.QAction("Item 1", menu))
menu.addAction(QtGui.QAction("Item 2", menu))
menu.addAction(QtGui.QAction("Item 3", menu))
menu.popup(self.mapToGlobal(pos))
连接信号时需要传递函数object,所以去掉括号:
self.folders_lv.customContextMenuRequested.connect(self.showMenu)
此外,在 showMenu
槽中,您可能需要:
menu.popup(self.folders_lv.viewport().mapToGlobal(pos))