BlinCTТам. 19, 2019, 8:53 Т.Ж.
Не отображается 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);*/ } }
Заранее спасибо.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
так модель пуста у вас, що має відображатись?
Изначально там ничего нету, но по кнопке add для простого примера должен добавится элемент например как я выше написал с индексом и данными. 0 : 345
Но у листа есть изначально высота.
Компонент навернео вот таким должен быть
Ну в качестве теста
ссылка на весь проект есть?
спробуйте додати, чи буде відображатись
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. У каждого таймера есть старт и стоп. Методы тоже у этого класса есть. И поулчается что отобразить хочу те таймеры что добавляются в лист и первой колонкой это индекс данного таймера. Потому что потом по данному индексу хочу удалять их.