Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8ada560

Browse files
add menu test
1 parent 89a31f4 commit 8ada560

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

‎UiFiles/MainWindow.ui

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@
256256
</item>
257257
<item>
258258
<widget class="TreeView" name="treeViewCatalogs">
259+
<property name="contextMenuPolicy">
260+
<enum>Qt::CustomContextMenu</enum>
261+
</property>
259262
<property name="frameShape">
260263
<enum>QFrame::NoFrame</enum>
261264
</property>

‎UiFiles/Ui_MainWindow.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ def setupUi(self, FormMainWindow):
100100
self.horizontalLayout_3.addWidget(self.buttonClear)
101101
self.verticalLayout_4.addWidget(self.widgetSearch)
102102
self.treeViewCatalogs = TreeView(self.widgetCatalogs)
103+
self.treeViewCatalogs.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
103104
self.treeViewCatalogs.setFrameShape(QtWidgets.QFrame.NoFrame)
104105
self.treeViewCatalogs.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
105106
self.treeViewCatalogs.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)

‎Widgets/TreeView.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import os
1313

1414
from PyQt5.QtCore import Qt
15-
from PyQt5.QtGui import QStandardItemModel, QStandardItem
16-
from PyQt5.QtWidgets import QTreeView
15+
from PyQt5.QtGui import QStandardItemModel, QStandardItem, QCursor
16+
from PyQt5.QtWidgets import QTreeView, QMenu, QAction
1717

1818
from Utils import Constants
1919
from Utils.CommonUtil import AppLog, Signals
@@ -29,6 +29,7 @@ class TreeView(QTreeView):
2929
def __init__(self, *args, **kwargs):
3030
super(TreeView, self).__init__(*args, **kwargs)
3131
self._initModel()
32+
self._initMenus()
3233
self._initSignals()
3334

3435
def _initModel(self):
@@ -38,11 +39,41 @@ def _initModel(self):
3839
self._fmodel.setSourceModel(self._dmodel)
3940
self.setModel(self._fmodel)
4041

42+
def _initMenus(self):
43+
"""初始化菜单"""
44+
self._menu = QMenu(self.tr('Catalogs'), self)
45+
self._actRun = QAction(self.tr('Run File'), self._menu)
46+
self._actFolder = QAction(self.tr('Open Folder'), self._menu)
47+
self._menu.addAction(self._actRun)
48+
self._menu.addAction(self._actFolder)
49+
4150
def _initSignals(self):
4251
Signals.itemJumped.connect(self.onItemJumped)
4352
Signals.filterChanged.connect(self._fmodel.setFilterRegExp)
4453
self.clicked.connect(self.onClicked)
4554
self.doubleClicked.connect(self.onDoubleClicked)
55+
self.customContextMenuRequested.connect(self._showMenu)
56+
self._actRun.triggered.connect(self.doRunFile)
57+
self._actFolder.triggered.connect(self.doOpenFolder)
58+
59+
def _showMenu(self, pos):
60+
"""右键显示菜单
61+
:param pos:
62+
"""
63+
mindex = self.indexAt(pos)
64+
if not mindex or not mindex.isValid():
65+
return
66+
self._menu.exec_(QCursor.pos())
67+
68+
def doRunFile(self, triggered):
69+
"""运行文件
70+
:param triggered:
71+
"""
72+
73+
def doOpenFolder(self, triggered):
74+
"""打开所在文件夹
75+
:param triggered:
76+
"""
4677

4778
def rootItem(self):
4879
"""得到根节点Item"""

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /