BlinCT
Jan. 29, 2021, 11:42 p.m.

Получение индерсов столбцов и строк в 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

Do you like it? Share on social networks!

1
BlinCT
  • Feb. 5, 2021, 3:33 a.m.
  • The answer was marked as a solution.

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

  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

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

    Comments

    Only authorized users can post comments.
    Please, Log in or Sign up
    • Last comments
    • AK
      April 1, 2025, 11:41 a.m.
      Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
    • Evgenii Legotckoi
      March 9, 2025, 9:02 p.m.
      К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
    • VP
      March 9, 2025, 4:14 p.m.
      Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
    • ИМ
      Nov. 22, 2024, 9:51 p.m.
      Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    • Evgenii Legotckoi
      Oct. 31, 2024, 11:37 p.m.
      Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup