需要在QTreeview和Qwidget弹出右键菜单,并在指定位置响应它。Qwidget连接的是Matplotlib,因此需要注意的是,QTreeview右键菜单动作的弹出是在Qt框架内进行,而Qwidget右键菜单的弹出是在matplotlib框架下弹出的代码如下:
QTreeview:
def poptreemenu(self):
if len(self.stationTree.selectedItems())>0:
if isinstance(self.stationTree.selectedItems()[-1].parent,File)==True:
Menu = QMenu()
ASI = Menu.addAction('All Stations Invisible')
ASI.triggered.connect(lambda :self.Files.setstationsinvisible(self.stationTree.selectedItems()))
Sortbyname=Menu.addAction('Sort by Name')
Sortbyname.triggered.connect(lambda:self.Files.SortByName(self.stationTree.selectedItems()))
rmfile=Menu.addAction('remove file')
rmfile.triggered.connect(lambda:self.Files.removeselectedfile(self.stationTree.selectedItems()))