71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
from PyQt5.QtCore import Qt,QModelIndex
|
|
from PyQt5.QtGui import QStandardItemModel, QStandardItem
|
|
from PyQt5.QtWidgets import (QTreeView, QTreeWidgetItem, QAbstractItemView, QHeaderView, QStyleFactory)
|
|
|
|
from rscder.utils.project import PairLayer, Project
|
|
|
|
class LayerTree(QtWidgets.QWidget):
|
|
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.tree_view = QTreeView(self)
|
|
self.tree = QtWidgets.QTreeWidget(self)
|
|
self.tree.setColumnCount(1)
|
|
self.setContextMenuPolicy(Qt.CustomContextMenu)
|
|
self.customContextMenuRequested.connect(self.right_menu_show)
|
|
self.root=QTreeWidgetItem(self.tree)
|
|
self.tree.setHeaderHidden(True)
|
|
# self.tree.setHeaderLabels(['图层'])
|
|
self.root.setText(0,'图层')
|
|
|
|
# child1=QTreeWidgetItem()
|
|
# child1.setText(0,'child1')
|
|
# child1.setCheckState(0,Qt.Checked)
|
|
|
|
# self.root.addChild(child1)
|
|
self.tree.expandAll()
|
|
|
|
self.tree.addTopLevelItem(self.root)
|
|
|
|
self.tree.clicked.connect(self.onClicked)
|
|
|
|
layout = QtWidgets.QGridLayout()
|
|
layout.addWidget(self.tree)
|
|
self.setLayout(layout)
|
|
self.setLayoutDirection(Qt.LeftToRight)
|
|
|
|
def onClicked(self,index):
|
|
print(index.row())
|
|
|
|
def add_layer(self, layer:str):
|
|
layer:PairLayer = Project().layers[layer]
|
|
item1 = QtWidgets.QTreeWidgetItem(self.root)
|
|
item1.setText(0, layer.l1_name)
|
|
item1.setCheckState(0, Qt.Checked)
|
|
item2 = QtWidgets.QTreeWidgetItem(self.root)
|
|
item2.setText(0, layer.l2_name)
|
|
item2.setCheckState(0, Qt.Checked)
|
|
|
|
item1.setData(0, Qt.UserRole, layer.id)
|
|
item2.setData(0, Qt.UserRole, layer.id)
|
|
self.tree.expandAll()
|
|
|
|
def clear(self):
|
|
self.tree.clear()
|
|
self.root = QTreeWidgetItem(self.tree)
|
|
self.root.setText(0,'图层')
|
|
self.tree.addTopLevelItem(self.root)
|
|
|
|
def right_menu_show(self, position):
|
|
rightMenu = QtWidgets.QMenu(self)
|
|
# QAction = QtWidgets.QAction(self.menuBar1)
|
|
self.actionreboot = QtWidgets.QAction('zhangji')
|
|
self.actionreboot.setObjectName("actionreboot")
|
|
self.actionreboot.setText('aaa')
|
|
rightMenu.addAction(self.actionreboot)
|
|
|
|
rightMenu.exec_(self.mapToGlobal(position))
|
|
|