Aug. 19, 2019, 8:53 a.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.
12
R

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

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

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

    Component
    {
        id: listDelegate

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

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

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

R

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

ListView {
     id: listView
     model: p1model
     delegate: delegate
     anchors.top: p1name.bottom
     anchors.topMargin: units.gu(1)
}

ListModel {
     id: p1model
     ListElement { score: "0" }
}

WrapWorker22.tar.gz WrapWorker22.tar.gz

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

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

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

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

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

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

ListModel{
id: list_model
}

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

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

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

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

Comments

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

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

VL
Jan. 20, 2020, 12:42 p.m.
Vova Lebedev

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:60points,
  • Rating points-1
VL
Jan. 20, 2020, 12:33 p.m.
Vova Lebedev

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4
AP
Jan. 20, 2020, 5:48 a.m.
Anastassiya Polyakova

C++ - Тест 003. Условия и циклы

  • Result:57points,
  • Rating points-2
Last comments
Jan. 21, 2020, 2:12 p.m.
Docent

Полезная статья. Как всегда - то что надо. Добавлю ещё маленькую полезность - после установки tracer (88 строка) и перед выводом значений в lineEdit (91 строка) стоит добавить updatePositio…
Jan. 17, 2020, 2:31 a.m.
Andrej Jankovich

Выглядит как ошибка библиотеки. Расскажите подробно на какой платформе вы собираете проект (MinGW или MSVC) их версии и версии Qt.
D
Jan. 16, 2020, 12:06 p.m.
DENIZ1819

Доброго времени суток, не подскажите, что делать в данной ситуации, после того, как я сделал все вышеуказанные инструкции для подключения библиотеки к проекту?
Jan. 14, 2020, 5:33 a.m.
Evgenij Legotskoj

Рекомендую Wt, достаточно мощная вещь. Этот фреймворк может использоваться для написания сайтов на C++, либо можно использовать только отдельный компоненты, например только ORM. Но я не знаю, ка…
a
Jan. 14, 2020, 5:29 a.m.
ayb

Спасибо за инфу. Поиск качественной ORM привел меня только к sqlite_orm, но не подходит из-за необходимости полноценной поддержки c++14. Про framework Wt не слышал, спасибо за наводку.
Now discuss on the forum
Jan. 22, 2020, 6:06 a.m.
Pavel.K

Можете попробовать через Loader сделать, те cделать свой компонент ректангл с нужными вам полями и через Loader вызывать этот компонент , а через Connections прописать что ваш компонент отрисова…
Jan. 22, 2020, 4:25 a.m.
Pavel.K

Привет, кто-нибудь делал тестовый Json сервер , чтобы не просто через сокет ByteArray пересылать, а с клиента обрабатывать Post и get запросы? Буду очень признателен если у кого то есть пр…
Jan. 20, 2020, 5:06 p.m.
Aleksej Vnukov

возможно,но все что я увидел по этому поводу - так это работать с этим адресом, но старые решения на данный момент не работают
Jan. 20, 2020, 1:49 p.m.
Evgenij Legotskoj

Добрый день, Касательно удаления строк. Любой QTableView класс, или наследованый от него имеет метод selectionModel() , который возвращает QItemSelectionModel . А эта…
Jan. 20, 2020, 1:35 p.m.
Evgenij Legotskoj

Добрый день. В Qt по сути используется MV шаблон проектирования. Поскольку контроллер и представление объединены в представлении. Так что да, вы понимаете правильно суть Qt. Насчёт тормозов…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB