Михаиллл
July 10, 2019, 4:17 p.m.

Как в QML сделать прямоугольники прокручивающиеся

Добрый день.
Скажите пожалуйста как сделать такие прямоугольники и как их добавлять и убирать?

2

Do you like it? Share on social networks!

4
Evgenii Legotckoi
  • July 10, 2019, 4:36 p.m.
  • The answer was marked as a solution.

Добрый день.

Для этого нужно использовать ListView и ListModel. Вот есть статья по ListView в QML . Единственный момент в том, что она по 1-м контролам, а вам нужно использовать вторые. Но там такие базовые вещи, что вряд ли будет большая разница.

    Михаиллл
    • July 11, 2019, 2:43 p.m.

    Сделал листвив так

        ListView
        {
            id: listViewMyDrivers
            x: 38
            y: 74
            width: 325
            height: 490
    
            delegate: Item
            {
                id: itemDelegate
                anchors.left: parent.left
                anchors.right: parent.right
                height: 40
    
                Rectangle
                {
                    anchors.fill: parent
                    anchors.margins: 5
                    color: "red"
                    Text {
                        id: textDriver
                        text: qsTr("textDriver")
                    }
                }
            }
    
            model: ListModel
            {
                id: listModelMyDrivers
            }
        }
    

    И кнопкой пытаюсь добавить содержимое

        buttonBack.onClicked:
        {
            listModelMyDrivers.append();
        }
    

    Ничего не добавляется и выдается ошибка: QML ListModel: append: value is not an object
    Скажите пожалуйста, что не так и как добавить элементы.

      Evgenii Legotckoi
      • July 11, 2019, 3:33 p.m.

      Ну так вы же ничего не передаёте в метод append. Естественно, что ругается ошибками.

      Сделайте хот бы так

      buttonBack.onClicked:
      {
          listModelMyDrivers.append({});
      }
      
        Михаиллл
        • July 11, 2019, 3:37 p.m.

        Спасибо. Вот так сделал и текст задается

        listModelMyDrivers.append({textForTextDriver: "textForTextDriver"});
        

          Comments

          Only authorized users can post comments.
          Please, Log in or Sign up
          • Last comments
          • AK
            April 24, 2025, 12:04 p.m.
            UPD: Переписал логику воспроизведения через стороннюю библиотеку BASS. Там выбрать можно
          • Evgenii Legotckoi
            April 16, 2025, 5:08 p.m.
            Благодарю за отзыв. И вам желаю всяческих успехов!
          • IscanderChe
            April 12, 2025, 5:12 p.m.
            Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
          • AK
            April 1, 2025, 11:41 a.m.
            Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
          • Evgenii Legotckoi
            March 9, 2025, 9:02 p.m.
            К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…