BlinCT
20 марта 2022 г. 1:51

Дополнить qml tab в существующий TabBar

Qt

Всем привет.
Возникла необходимость добавить один таб в TabBar который заполняется через Repeater.
Я пытаюсь добавить статичный один tab и уже после него Repeater должин остальные дополнять.
Через Repeater я добавляю остальыне tab потому что для разных обьектов и tab меняются. Но вот один в начале статичный мне теперь требуется добавить.
Ниже привожу код который за это отвечает

  1. TabBar
  2. {
  3. id: tabBar
  4.  
  5. width: parent.width
  6. anchors.top: comboBoxDevices.bottom
  7.  
  8. background: Rectangle { color: "transparent" }
  9.  
  10. Repeater {
  11. model: ObjectModel {
  12. id: tabsModel
  13.  
  14. function reload(pages)
  15. {
  16. tabsModel.clear()
  17. for (var i = 0; i < pages.length; ++i)
  18. {
  19. tabsModel.append(tabButtonComponent.createObject(tabBar, {text: pages[i].title, stackLayoutIndex: pages[i].ObjectModel.index}))
  20. if(pages[i].title!=="Advanced")
  21. pages[i].reload()
  22. }
  23. }
  24. }
  25. }
  26.  
  27. }
  28.  
  29. Component
  30. {
  31. id: tabButtonComponent
  32.  
  33. TabButton
  34. {
  35. property int stackLayoutIndex: -1
  36. // width: implicitWidth
  37. }
  38. }
  39.  
  40. StackLayout
  41. {
  42. width: parent.width
  43. currentIndex: tabsModel.count > 0 ? tabsModel.get(tabBar.currentIndex).stackLayoutIndex : 0
  44. anchors.top: tabBar.bottom
  45. anchors.left: parent.left
  46. anchors.right: parent.right
  47. anchors.bottom: parent.bottom
  48. Repeater
  49. {
  50. model: ObjectModel
  51. {
  52. id: pagesModel
  53. General { id: generalTab }
  54. Statistics { id: statisticsTab }
  55. Attributes { id: attributes }
  56. DeviceStat { id: deviceStat }
  57. }
  58. }
  59. }

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

1

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

0

Комментарии

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