BlinCT
15 сентября 2023 г. 22:35

Размеры полей в TreeView

qml

Всем привет.
Пытаюсь сделать дерево вот такого вида

Дерево treeview
Пытаюсь организовать делегат для каждой строки в дереве. ТО есть отступ какого то размера и если при открытии есть подсписок то увеличивать наверное с каждым шагом по 2.
Но что-то не моуг правильно выстроить данные для строки.
Может кто поправить меня где ошибка у меня?
Вот часть кода:

  1. Rectangle
  2. {
  3. SplitView.minimumWidth: root.width * 0.1
  4. // SplitView.maximumWidth: root.width * 0.25
  5.  
  6. width: root.width * 0.5
  7.  
  8. color: "#5a5a5a" // TODO: need from C++
  9.  
  10. TreeView
  11. {
  12. id: treeViewBookmark
  13.  
  14. anchors.fill: parent
  15.  
  16. clip: true
  17.  
  18. delegate: Item
  19. {
  20. id: treeDelegate
  21. required property int page
  22. required property point location
  23. required property real zoom
  24. // color: "yellow"
  25.  
  26. // implicitWidth: padding + label.x + label.implicitWidth + padding
  27. implicitHeight: label.implicitHeight * 1.5
  28.  
  29. readonly property real indent: 20
  30. readonly property real padding: 5
  31.  
  32. // // Assigned to by TreeView:
  33. required property TreeView treeView
  34. required property bool isTreeNode
  35. required property bool expanded
  36. required property int hasChildren
  37. required property int depth
  38.  
  39. RowLayout
  40. {
  41. spacing: treeViewBookmark.width * 0.03
  42.  
  43. anchors.fill: parent
  44.  
  45. Rectangle
  46. {
  47. id: name
  48.  
  49. Layout.fillHeight: true
  50. width: treeDelegate.padding + (treeDelegate.depth * indicator.width)
  51. color: "yellow"
  52. // Layout.width: treeDelegate.padding + (treeDelegate.depth * treeDelegate.indent)
  53. }
  54.  
  55. Rectangle
  56. {
  57. id: rectIndicator
  58.  
  59. width: childrenRect.width
  60.  
  61. Text
  62. {
  63. id: indicator
  64. visible: treeDelegate.isTreeNode && treeDelegate.hasChildren
  65. // x: padding + (treeDelegate.depth * treeDelegate.indent)
  66. anchors.verticalCenter: label.verticalCenter
  67. text: "▸"
  68. rotation: treeDelegate.expanded ? 90 : 0
  69. }
  70. }
  71.  
  72. Rectangle
  73. {
  74. id: rectTabel
  75.  
  76. Text
  77. {
  78. id: label
  79. anchors.fill: parent
  80.  
  81. clip: true
  82. text: model.display
  83. color: "#b7b7b7"
  84. }
  85. }
  86.  
  87.  
  88. }
  89.  
  90. TapHandler {
  91. onTapped: {
  92. treeView.toggleExpanded(row)
  93. var qi = treeViewBookmark.index(row, 0)
  94. }
  95. }
  96. }
  97.  
  98. model: PdfBookmarkModel
  99. {
  100. document: docPdf
  101. }
  102.  
  103. ScrollBar.vertical: ScrollBar { }
  104. }
  105. }

Заранее благодарю

2

Вам это нравится? Поделитесь в социальных сетях!

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь