BlinCT
29 января 2021 г. 23:42

Получение индерсов столбцов и строк в ListView

Всем привет.
Возникла необходимость через индексы поулчать данные для таблицы.

  1. ListView
  2. {
  3. id: tableView
  4.  
  5. anchors.top: headers ? rowHeader.bottom : root.top
  6. anchors.left: parent.left
  7. anchors.right: parent.right
  8. anchors.bottom: parent.bottom
  9.  
  10. flickableDirection: TableView.VerticalFlick
  11.  
  12. clip: true
  13. model: root.model
  14.  
  15. delegate: Rectangle
  16. {
  17. id: delegateRect
  18.  
  19. color: "transparent"
  20. implicitWidth: 543
  21. implicitHeight: 22
  22. border.width: 1
  23. radius: 5
  24.  
  25.  
  26. Row
  27. {
  28. id: rect
  29. clip: true
  30.  
  31. Repeater
  32. {
  33. id: celsRepeater
  34.  
  35. model: root.model.columnCount()
  36.  
  37.  
  38. Rectangle
  39. {
  40. id: rextText
  41.  
  42. border.color: "blue"
  43. color: "#2C3033"
  44. width: root.model.getSizeLongString(index)
  45. height: 15
  46.  
  47. Text
  48. {
  49. width: 50
  50. height: 35
  51.  
  52. anchors.fill: parent
  53. font.pixelSize: 12
  54. verticalAlignment: Text.AlignTop
  55. text: root.model.getData(celsRepeater.index, tableView.currentIndex)
  56. }
  57. }
  58. }
  59. }
  60. }
  61. }

В С++ метод getData() я передаю индексы строки и столбца. По сути при создании ковой строки в ListView индекс меняется и должен я получать новые данные. Но ногда я прост ов консоль вывожу номера этих индексов то получаю

qml: index: 0 - 0
qml: index: 0 - 1
qml: index: 0 - 0
qml: index: 0 - 1
qml: index: 0 - 0
qml: index: 0 - 1
qml: index: 0 - 0
qml: index: 0 - 1

В данной модели у меня 2 столбца и штук 15 строк. То есть индекс для столбцов меняется а строка все время 0.
Интересно то что колличество созданных строк то которое и должно быть, но почему индекс не меняется я не понимаю.

1

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

1
BlinCT
  • 5 февраля 2021 г. 3:33
  • Ответ был помечен как решение.

Вопрос закрыт.
Решение было таким, в деоегат передается индекс из модели.

  1. delegate: Rectangle
  2. {
  3. id: delegateRect
  4.  
  5. color: "transparent"
  6. implicitWidth: 543
  7. implicitHeight: 22
  8. border.width: 1
  9. radius: 5
  10.  
  11. property var indexRow: model.index

И после этого уже в нужнмо нам месте мы получаем индекс строки.

    Комментарии

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