ГА
Геворк АрзуманянҚыр. 21, 2016, 3: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, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
m
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
IscanderCheҚаз. 31, 2024, 3:43 Т.Қ.
После того, как мышкой кликается кнопка, значения checked на кнопке расходится со значением свойства “che” в модели, вообще сам binding свойства кнопки к свойству в модели отключается. Для обхода этого эффекта можно воспользоваться таким небольшим хаком:
Ошибся в методе. Вот правильно:
Все работает. но рассинхрон все равно возникает.
если выделить все кнопки при помощи button3, а потом начать по одиночке отжимать выделенные объекты, то при повторном нажатии на button3 выделяются объекты только на 2 раз …