BlinCT
BlinCTAug. 19, 2019, 6:53 p.m.

Не отображается ListView

Всем привет.
Пытаюсь сделать qml обьект ListView который будет меить прокрутку если обьектов там будет больше дефолтной высоты.
Под ним 4 кнопки для добавления и удаления этих обьектов.
Но почему то у меня не отображается он. Подскажите где ошибку допускаю?
Вроде выставил высоту и ширину, но чет не показывает.
И еще, если это важно то я пытаюсь делегат который будет представлять из себя обьекты в листе как индекс : данные
Например:
0 : 124
1 : 333

    ScrollView
    {
        id: scrollView
        anchors.top: parent.top

        ListView
        {
            id: listView
            anchors.fill: parent

            width: 180; height: 200
            anchors.top: parent.top
            anchors.verticalCenter: parent.verticalCenter
            delegate: listDelegate

            contentWidth: 320
            flickableDirection: Flickable.AutoFlickDirection

        }
    }

    Component
    {
        id: listDelegate

        Label
        {
            id: delegateLabel

            anchors.centerIn: parent

            color: "red"

            text: workerA.time
        }
    }

    GridLayout
    {
        id: grid

        rows: 2
        columns: 2
        anchors.top: scrollView.bottom

        rowSpacing: 10
        columnSpacing: 10

        Rectangle
        {
            width: 50
            height: 40
            Text { id: textbutton_1; text: qsTr("ADD"); anchors.centerIn: parent }
            Layout.row: 0; Layout.column: 0;
            gradient: Gradient {
                GradientStop { position: 0.0; color: "lightsteelblue" }
                GradientStop { position: 1.0; color: "blue" }
            }
//            MouseArea { anchors.fill: parent; onClicked: { workerA.change = !workerA.change } }
        }
        Rectangle
        {
            width: 50
            height: 40
            Text { id: textbutton_2; text: qsTr("REM"); anchors.centerIn: parent }
            Layout.row: 1; Layout.column: 0;
            gradient: Gradient {
                GradientStop { position: 0.0; color: "lightsteelblue" }
                GradientStop { position: 1.0; color: "blue" }
            }
            /*onClicked: Core.stack.push(nandTest);*/
        }
        Rectangle
        {
            width: 50
            height: 40
            Text { id: textbutton_3; text: qsTr("START"); anchors.centerIn: parent }
            Layout.row: 0; Layout.column: 1;
            gradient: Gradient {
                GradientStop { position: 0.0; color: "lightsteelblue" }
                GradientStop { position: 1.0; color: "blue" }
            }
            /*onClicked: Core.stack.push(displayTest);*/
        }
        Rectangle
        {
            width: 50
            height: 40
            Text { id: textbutton_4; text: qsTr("STOP"); anchors.centerIn: parent }
            Layout.row: 1; Layout.column: 1;
            gradient: Gradient {
                GradientStop { position: 0.0; color: "lightsteelblue" }
                GradientStop { position: 1.0; color: "blue" }
            }
            /*onClicked: Core.stack.push(touchTest);*/
        }
    }

Заранее спасибо.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

12
R
  • Aug. 19, 2019, 7:13 p.m.

так модель пуста у вас, що має відображатись?

    BlinCT
    • Aug. 19, 2019, 7:27 p.m.

    Изначально там ничего нету, но по кнопке add для простого примера должен добавится элемент например как я выше написал с индексом и данными. 0 : 345
    Но у листа есть изначально высота.

      BlinCT
      • Aug. 19, 2019, 7:33 p.m.

      Компонент навернео вот таким должен быть

          Component
          {
              id: listDelegate
      
              Row
              {
                  Label { id: index; color: "red"; text: "index :" }
                  Label { id: delegateLabel; color: "red"; text: "123" }
              }
          }
      

      Ну в качестве теста

        Pavel K.
        • Aug. 19, 2019, 7:38 p.m.

        ссылка на весь проект есть?

          R
          • Aug. 19, 2019, 7:45 p.m.

          спробуйте додати, чи буде відображатись

          ListView {
               id: listView
               model: p1model
               delegate: delegate
               anchors.top: p1name.bottom
               anchors.topMargin: units.gu(1)
          }
          
          ListModel {
               id: p1model
               ListElement { score: "0" }
          }
          
            BlinCT
            • Aug. 19, 2019, 7:46 p.m.

            WrapWorker22.tar.gz WrapWorker22.tar.gz

            Вообще вприследуется такая логика что создается лист таймеров, при нажатии на add в лист доабвляется первый таймер и он вместе с его индексом отображается в qml.
            Дефолтно это 0.
            Если нажать старт или стоп то это само собою управление таймером по индексу.
            Единственное что я забыл добавить на qml так это текстовое поле куда вводится руками номер индекса таймера которым надо управлять, или удалить. На стороне крестов там все методы я уже написал.
            Осталось вот с qml разобратся.

              Алексей Внуков
              • Aug. 19, 2019, 8:17 p.m.
              • (edited)

              вам нужна модель, модель отвечает за данные в листе, делегат отвечает за то как эти данные должны отображаться, тоесть у вас есть как отображается, а что отображать нет

              при add должно происходить model.append(data)

                BlinCT
                • Aug. 19, 2019, 9 p.m.

                Кинул вон архив с самим тестовым проектом.

                  BlinCT
                  • Aug. 19, 2019, 9:20 p.m.

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

                    Алексей Внуков
                    • Aug. 19, 2019, 9:29 p.m.

                    я в дороге, по тому примеру что в есть выше вам чтоб заработало нужно примерно следующее

                    ListModel{
                    id: list_model
                    }

                    в ListView добавить model:list_model

                    там где кнопка add по нажатию:
                    list_model.append(delegateLable.text="123")

                      Pavel K.
                      • Aug. 20, 2019, 12:45 p.m.

                      видел ,как время повится , посмотрю

                        BlinCT
                        • Aug. 20, 2019, 1:49 p.m.

                        Спасибо.
                        Для уточнения хотел написать, там класс Timers он в себе имеет лист с таймерами.
                        Таймеры добавляются через метод. То есть как я понимаю то что я хочу отобразить в листе на стороне qml это именно то что имеется в листе из Timers. У каждого таймера есть старт и стоп. Методы тоже у этого класса есть. И поулчается что отобразить хочу те таймеры что добавляются в лист и первой колонкой это индекс данного таймера. Потому что потом по данному индексу хочу удалять их.

                          Comments

                          Only authorized users can post comments.
                          Please, Log in or Sign up
                          Ua

                          Qt - Test 001. Signals and slots

                          • Result:84points,
                          • Rating points4
                          Ua

                          Qt - Test 001. Signals and slots

                          • Result:42points,
                          • Rating points-8
                          ОК

                          Qt - Test 001. Signals and slots

                          • Result:47points,
                          • Rating points-6
                          Last comments
                          ИМ
                          Игорь МаксимовNov. 22, 2024, 9:51 p.m.
                          Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                          Evgenii Legotckoi
                          Evgenii LegotckoiOct. 31, 2024, 11:37 p.m.
                          Django - Lesson 064. How to write a Python Markdown extension Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                          A
                          ALO1ZEOct. 19, 2024, 5:19 p.m.
                          Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                          ИМ
                          Игорь МаксимовOct. 5, 2024, 4:51 p.m.
                          Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                          d
                          dblas5July 5, 2024, 8:02 p.m.
                          QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                          Now discuss on the forum
                          f
                          firstlunoxodFeb. 15, 2025, 1:46 p.m.
                          Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
                          Дмитрий
                          ДмитрийFeb. 3, 2025, 4:24 p.m.
                          Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
                          NW
                          Nayo WaiJan. 30, 2025, 7:22 p.m.
                          не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
                          n
                          nklyJan. 3, 2025, 12:52 p.m.
                          Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
                          M
                          MarselAug. 17, 2023, 12:26 a.m.
                          OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

                          Follow us in social networks