MCPcopy Index your code
hub / github.com/PyQt5/PyQtClient / TreeView

Class TreeView

Widgets/TreeView.py:25–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23
24
25class TreeView(QTreeView):
26
27 def __init__(self, *args, **kwargs):
28 super(TreeView, self).__init__(*args, **kwargs)
29 self._initModel()
30 self._initSignals()
31
32 def _initModel(self):
33 """设置目录树Model"""
34 self._dmodel = QStandardItemModel(self)
35 self._fmodel = SortFilterModel(self)
36 self._fmodel.setSourceModel(self._dmodel)
37 self.setModel(self._fmodel)
38
39 def _initSignals(self):
40 Signals.itemJumped.connect(self.onItemJumped)
41 Signals.filterChanged.connect(self._fmodel.setFilterRegExp)
42 self.clicked.connect(self.onClicked)
43 self.doubleClicked.connect(self.onDoubleClicked)
44
45 def rootItem(self):
46 """得到根节点Item"""
47 return self._dmodel.invisibleRootItem()
48
49 def findItems(self, name):
50 """根据名字查找item
51 :param name:
52 """
53 return self._dmodel.findItems(name)
54
55 def onItemJumped(self, name):
56 items = self.findItems(name)
57 if not items:
58 return
59 index = self._fmodel.mapFromSource(self._dmodel.indexFromItem(items[0]))
60 self.setCurrentIndex(index)
61 self.expand(index)
62 # # 显示readme
63 Signals.urlLoaded.emit(name)
64
65 def listSubDir(self, pitem, path):
66 """遍历子目录
67 :param item: 上级Item
68 :param path: 目录
69 """
70 paths = os.listdir(path)
71 files = []
72 for name in paths:
73 spath = os.path.join(path, name)
74 if not os.path.isfile(spath):
75 continue
76 spath = os.path.splitext(spath)
77 if len(spath) == 0:
78 continue
79 if spath[1] == '.py' and spath[0].endswith('__init__') == False:
80 files.append(name)
81
82 # 已经存在的item

Callers 2

setupUiMethod · 0.90
__init__Method · 0.90

Calls

no outgoing calls

Tested by 1

__init__Method · 0.72