from typing import Optional from PyQt5.QtCore import QCoreApplication from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem from .PostgreSQL import PostgreSQL class Tree: type = "" def __init__( self, type: Optional[str] = '' ): self.type = type def createTree(self, data, parent, parentid): if parentid is not None: for row in data: if row[2] == parentid: item = QTreeWidgetItem(parent) item.setText(0, row[1]) item.setText(1, row[0]) item.setText(2, row[3]) self.createTree(data, item, row[0]) else: for row in data: item = QTreeWidgetItem(parent) item.setText(0, row[1]) item.setText(1, row[0]) item.setText(2, row[3]) self.createTree(data, item, row[0]) def initTreeWidget(self, dbcoon): tree = QTreeWidget() tree.setStyleSheet("QTreeView::item{padding: 2px;}"); tree.setColumnCount(3) tree.setColumnHidden(1, True) tree.setColumnHidden(2, True) tree.setObjectName(self.type) tree.setHeaderLabels({"名称", "实体数据名称", "数据类型"}) tree.headerItem().setHidden(True) pg = PostgreSQL(schema=dbcoon["schema"], host=dbcoon["host"], port=dbcoon["port"], user=dbcoon["user"], password=dbcoon["password"], dbname=dbcoon["dbname"]) treedata = pg.getZyml() self.createTree(treedata, tree, "") print(treedata) pg.close() # __sortingEnabled = tree.isSortingEnabled() # tree.setSortingEnabled(True) # tree.setSortingEnabled(__sortingEnabled) return tree