BlinCT
May 2, 2020, 12:26 a.m.

Распределение нескольких ListView в однмо обьекте

Все привет.
Пытаюсь сделать 2 листа с данными, примерно такое как на скриншоте что прикрепляю
Screenshot_20200501_201756.png Screenshot_20200501_201756.png

То есть это ректангл с 2 листами которые имеют нахвания каждый, внутри будут кнопки но я пока для протатипа текстовый обьект кинул.
И там идут прокрутки(но наверное нету смысла чтоыб они сразу были видны).
под листами 3 кнопки.
Подскажите, у меня что то все в одной куче получается, хотя вроде есл ия листы поместил в лайаут то обьекты должны по шириен растянутся.
Буду признателен за совет по коду.

  1. Rectangle
  2. {
  3. id: rootItem
  4.  
  5. anchors.fill: parent
  6.  
  7. color: "black"
  8.  
  9. ColumnLayout
  10. {
  11. id: rootColumn
  12.  
  13. RowLayout
  14. {
  15. id: rowList
  16.  
  17. anchors.fill: parent
  18.  
  19. Rectangle
  20. {
  21. id: rectLeft
  22.  
  23. ListView
  24. {
  25. id: leftList
  26.  
  27. Text {
  28. id: left
  29. text: qsTr("left")
  30. }
  31. }
  32. }
  33.  
  34. Rectangle
  35. {
  36. id: rectRight
  37.  
  38. ListView
  39. {
  40. id: rightList
  41.  
  42. Text {
  43. id: right
  44. text: qsTr("right")
  45. }
  46. }
  47. }
  48. }
  49.  
  50. RowLayout
  51. {
  52. id: rowButton
  53.  
  54. Button { text: "first" }
  55. Button { text: "second" }
  56. Button { text: "third" }
  57. }
  58. }
  59. }
2

Do you like it? Share on social networks!

2
Evgenii Legotckoi
  • May 4, 2020, 3:45 a.m.
  • The answer was marked as a solution.

Привет.
Сколько раз мне тебе повторять, что якоря anchors для Layout не работают, когда такой объект расположен внутри другого Layout, или работают на половину?
У тебя в debug должна была высыпаться вот такая ошибка

  1. qrc:/main.qml:24:13: QML RowLayout: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.

Нужно использовать Layout свойства.

Вот пример

  1. import QtQuick 2.12
  2. import QtQuick.Window 2.12
  3. import QtQuick.Controls 2.12
  4. import QtQuick.Layouts 1.12
  5.  
  6. Window {
  7. visible: true
  8. width: 640
  9. height: 480
  10. title: qsTr("Hello World")
  11.  
  12. Rectangle
  13. {
  14. id: rootItem
  15. anchors.fill: parent
  16. color: "whitesmoke"
  17.  
  18. ColumnLayout
  19. {
  20. id: rootColumn
  21. anchors.fill: parent
  22.  
  23. RowLayout
  24. {
  25. id: rowList
  26. Rectangle
  27. {
  28. id: rectLeft
  29. Layout.fillWidth: true
  30. ListView
  31. {
  32. id: leftList
  33. Text {
  34. id: left
  35. text: qsTr("left")
  36. }
  37. }
  38. }
  39.  
  40. Rectangle
  41. {
  42. id: rectRight
  43. Layout.fillWidth: true
  44.  
  45. ListView
  46. {
  47. id: rightList
  48. Text {
  49. id: right
  50. text: qsTr("right")
  51. }
  52. }
  53. }
  54. }
  55.  
  56. RowLayout {
  57. id: rowButton
  58. Button { text: "first" }
  59. Button { text: "second" }
  60. Button { text: "third" }
  61. }
  62. }
  63. }
  64. }
  65.  

Далее

    BlinCT
    • May 4, 2020, 4:34 a.m.

    Если честно то чет я постоянно про отсутствие якорей в лайаутах забываю, ты прав.

      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