ГА
Геворк Арзуманян21 сентября 2016 г. 15:20
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 (Выделить все)
Не пойму в чем дело ? Помогите товарищи.
Спасибо за внимание
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD
- Akiv Doros
- 11 ноября 2024 г. 21:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
m
- molni99
- 26 октября 2024 г. 8:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
m
- molni99
- 26 октября 2024 г. 8:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Последние комментарии
Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
Сейчас обсуждают на форуме
добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderChe31 октября 2024 г. 21:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3 октября 2024 г. 11:05
После того, как мышкой кликается кнопка, значения checked на кнопке расходится со значением свойства “che” в модели, вообще сам binding свойства кнопки к свойству в модели отключается. Для обхода этого эффекта можно воспользоваться таким небольшим хаком:
Ошибся в методе. Вот правильно:
Все работает. но рассинхрон все равно возникает.
если выделить все кнопки при помощи button3, а потом начать по одиночке отжимать выделенные объекты, то при повторном нажатии на button3 выделяются объекты только на 2 раз …