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

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    22 листопада 2024 р. 21:51
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…