TreeWidget.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from typing import Optional
  2. from PyQt5.QtCore import QCoreApplication
  3. from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem
  4. from .PostgreSQL import PostgreSQL
  5. class Tree:
  6. type = ""
  7. def __init__(
  8. self,
  9. type: Optional[str] = ''
  10. ):
  11. self.type = type
  12. def createTree(self, data, parent, parentid):
  13. if parentid is not None:
  14. for row in data:
  15. if row[2] == parentid:
  16. item = QTreeWidgetItem(parent)
  17. item.setText(0, row[1])
  18. item.setText(1, row[0])
  19. item.setText(2, row[3])
  20. self.createTree(data, item, row[0])
  21. else:
  22. for row in data:
  23. item = QTreeWidgetItem(parent)
  24. item.setText(0, row[1])
  25. item.setText(1, row[0])
  26. item.setText(2, row[3])
  27. self.createTree(data, item, row[0])
  28. def initTreeWidget(self, dbcoon):
  29. tree = QTreeWidget()
  30. tree.setStyleSheet("QTreeView::item{padding: 2px;}");
  31. tree.setColumnCount(3)
  32. tree.setColumnHidden(1, True)
  33. tree.setColumnHidden(2, True)
  34. tree.setObjectName(self.type)
  35. tree.setHeaderLabels({"名称", "实体数据名称", "数据类型"})
  36. tree.headerItem().setHidden(True)
  37. pg = PostgreSQL(schema=dbcoon["schema"], host=dbcoon["host"],
  38. port=dbcoon["port"],
  39. user=dbcoon["user"],
  40. password=dbcoon["password"],
  41. dbname=dbcoon["dbname"])
  42. treedata = pg.getZyml()
  43. self.createTree(treedata, tree, "")
  44. print(treedata)
  45. pg.close()
  46. # __sortingEnabled = tree.isSortingEnabled()
  47. # tree.setSortingEnabled(True)
  48. # tree.setSortingEnabled(__sortingEnabled)
  49. return tree