ГА
Геворк АрзуманянSept. 21, 2016, 3:20 p.m.
QML ListModel и кнопки
Доброго времени суток господа!
столкнулся с такой проблемой разбирая пример Динамическое создание и удаление элементов
Модифицировал чуть код (не без помощи автора)
ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("Hello World") /* Номер создаваемой кнопки, для её визуальной идентификации * при демонстрации проекта */ property int number: 0 /* Строка с полем, где отображается индекс нажатой динамической кнопки, * кнопкой для создания динамических кнопок, * и кнопкой для удаления динамических кнопок по индексу * */ Row { id: row // Задаём размеры строки и прибиваем к верхней части окна приложения height: 50 anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right // Задаём размещение поля с индексом кнопки Rectangle { width: (parent.width / 5) height: 50 // Устанавливаем текстовое поле для размещения индекса кнопки Text { id: textIndex anchors.fill: parent text: "" verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter } } // Кнопка для создания динамических кнопок Button { id: button1 text: qsTr("Create Button") width: (parent.width / 5) height: 50 /* По клику по кнопке добавляем в model ListView * объект, с заданными параметрами * */ onClicked: { listModel.append({idshnik: "Button " + (++number),che: false}) } } // Кнопка для удаления динамических кнопок Button { id: button2 text: qsTr("Delete Button") width: (parent.width / 5) height: 50 // Удаляем кнопку по её индексу в ListView onClicked: { // if(textIndex.text != ""){ listModel.remove(textIndex.text) textIndex.text = "" // Обнуляем текстовое поле с индексом number-- // } } } Button { id: button3 text: qsTr("Checked all") width: (parent.width / 5) height: 50 checkable: true // Выделяем все созданные кнопки onCheckedChanged: { if(checked===true){ for(var i=0; i<listModel.count; i++){ listModel.setProperty(i,"che",true) console.log(listModel.get(i).che)} } else { for(var i=0; i<listModel.count; i++){ listModel.setProperty(i,"che",false) console.log(listModel.get(i).che)} } } } } // ListView для представления данных в виде списка ListView { id: listView1 // Размещаем его в оставшейся части окна приложения anchors.top: row.bottom anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right /* в данном свойстве задаём вёрстку одного объекта * который будем отображать в списке в качестве одного элемента списка * */ delegate: Item { id: item anchors.left: parent.left anchors.right: parent.right height: 40 // В данном элементе будет находиться одна кнопка Button { anchors.fill: parent anchors.margins: 5 /* самое интересное в данном объекте * задаём свойству text переменную, по имени которой будем задавать * свойства элемента * */ checkable: true //checked: false checked: che text: idshnik onCheckedChanged: { textIndex.text = inde } } } // Сама модель, в которой будут содержаться все элементы model: ListModel { id: listModel // задаём ей id для обращения } } }
При нажатии на кнопку button3 (Выделить все) созданные кнопки анимируются и все хорошо, но стоит после этого нажать на одну из созданных кнопок, то эта кнопка перестает реагировать на нажатие button3 (Выделить все)
Не пойму в чем дело ? Помогите товарищи.
Спасибо за внимание
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!
AD
- Akiv Doros
- Nov. 12, 2024, 1:58 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 11:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 11:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
ИМ
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовNov. 22, 2024, 10:51 p.m.
Evgenii LegotckoiNov. 1, 2024, 12:37 a.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 5:51 p.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
Evgenii LegotckoiJune 25, 2024, 1:11 a.m.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Nov. 15, 2024, 5:04 p.m.
NSProjectJune 4, 2022, 1:49 p.m.
IscanderCheNov. 1, 2024, 1:43 a.m.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
После того, как мышкой кликается кнопка, значения checked на кнопке расходится со значением свойства “che” в модели, вообще сам binding свойства кнопки к свойству в модели отключается. Для обхода этого эффекта можно воспользоваться таким небольшим хаком:
Ошибся в методе. Вот правильно:
Все работает. но рассинхрон все равно возникает.
если выделить все кнопки при помощи button3, а потом начать по одиночке отжимать выделенные объекты, то при повторном нажатии на button3 выделяются объекты только на 2 раз …