在PyQt中对QTableView添加右键菜单

您所在的位置:网站首页 qmenu右键菜单使能 在PyQt中对QTableView添加右键菜单

在PyQt中对QTableView添加右键菜单

2023-09-20 06:58| 来源: 网络整理| 查看: 265

这里写图片描述

上面的软件,最左侧是QList,中间是QLabelView,准备给中间的表格加个右键菜单,主要代码如下

self.view.setContextMenuPolicy(Qt.CustomContextMenu) # 右键菜单,如果不设为CustomContextMenu,无法使用customContextMenuRequested self.view.customContextMenuRequested.connect(self.showContextMenu) def showContextMenu(self): # 创建右键菜单 self.view.contextMenu = QMenu(self) self.actionA = self.view.contextMenu.addAction(u'动作a') # self.actionA = self.view.contextMenu.exec_(self.mapToGlobal(pos)) # 1 self.view.contextMenu.popup(QCursor.pos()) # 2菜单显示的位置 self.actionA.triggered.connect(self.actionHandler) # self.view.contextMenu.move(self.pos()) # 3 self.view.contextMenu.show() def actionHandler(self): print "成功"

建立菜单很快,主要是位置问题,可以看到代码中关于位置的就有三条,1和3效果一样,他获取到的位置是在表格中的位置,菜单却出现在整个软件的相对位置上,只有2获得的位置是准确的

def showContextMenu(self, pos): # 创建右键菜单 self.view.contextMenu = QMenu(self) self.actionA = self.view.contextMenu.addAction(u'动作a') # self.actionA = self.view.contextMenu.exec_(self.mapToGlobal(pos)) # 1 self.view.contextMenu.popup(QCursor.pos()) # 2菜单显示的位置 self.actionA.triggered.connect(self.actionHandler) # self.view.contextMenu.move(self.pos() + pos) # 3 self.view.contextMenu.show() def actionHandler(self): print "成功"


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3