Qt Android. QML уроки #6. Динамическое создание и удаление элементов

Автор Nikita Stoianov
Qt Android. QML уроки #6. Динамическое создание и удаление элементов

дорогие друзья.

С вами. Евгений городской канал и велик в одном из прошлых уроков я рассказывал о динамическом создание виджетов в qt, но там кот был плюс плюс теперь тоже самое хочу показать на примере кем-то есть никакого личного кода работаем с qml общее количество нас сегодня — это 117 целой кучей комментарий 80 всего лишь и так, что должна делать программа. Если вы не смотрели тот урок программа такая у нас есть текстовое поле в котором сохраняется кнопок также есть две кнопки создать кнопку и удалить кнопки с этим создают удаляют именно динамические объекты динамические кнопки располагается в лиственном лесу нас имеется лиственных как допустим при разработке на Java под Android и в этом листьев помещается какие-то или в этих элементах у нас находятся кнопочки при нажатии на эти кнопки динамические которые вас будут создаваться в этих элементов у нас собирается индекс элемента и помещается в текстовое поле по нажатию 2 кнопки которая удаляет кнопку.

У нас забирается номер индекса из текстового поля и поэтому удаляется кнопка которую мы нажимали то динамическая кнопка которую вы нажимали чтобы получить номер индекса посмотрим как — это делается в программном.

У нас есть аппликация в котором располагается наша приложение. Наше окном и в этом окне задан Property in Tempo — это переменная хранит просто номера создаваемых кнопок возрастающей постоянное количество чтобы могли просто понять, что мы удалили ту кнопку по которой ты чисто дали у нас имеется обед Rose таракан идёт текстовое поле заключенная в объект rectangle размер строки 50 50 пикселей по верхнему краю слева направо в окне приложения одну пятую часть занимают объект rectangle в котором располагается тосамое такое в котором нас будет показываться индекс нажатой кнопке. Далее идет кнопка для создания динамических кнопок занимаюсь 2/5 окна 2/5 окна по ширине и высотой также 50 пикселей. Далее идет вторая кнопка которая удаляет адинамическая кнопки по индексу в листве также занимает одну-две шириной окна приложения про удаление и добавление я скажу чуть позже. Сейчас опустимся до лиственной вот несколько действий. Нам необходимо задать кроме параметров её расположение свойства бегает делегат, а то есть — это тот внешний вид нашего элементом в списке который будет отображаться как отдельные Unit отдельные элементы. Кто есть мы задаем его внешний вид именно свойственные делегат delegate для лиственного вот он задается объектом как он растягивается по списку, а также устанавливается его высота в этот. А — это мы помещаем кнопочку растянутую по всему этому с далее идёт интересное параметры текст с текстом мы знакомы, но интересно то, что сюда помещается свойства переменная it-шник — это айдишник таким вот рассветом назван албанский мы будем задавать свойства текст именно по названию вот — это вот это. поэтому названию. Когда будем создавать элементы и помещать его в листве. Ну и сама кнопочка он klekt которая в текстовое поле текст, а то у нас задом в строке текст индекс. Мы в его текстовое поле текст по нажатию кнопки динамическая кнопки помещаем свойства. Яндекс Яндекс данного объекта данного одного элемента нигде не задан, но он является. Как одну из переменных вот этого delegate делегатов действие и также присутствует модель лист модель которая имеет свой it-шник через этот айдишник будет производиться добавление элементов в детстве мы можем добавить предопределенный элемент и через объект list Element указать его it-шник допустим вот так вот задаем текст то есть мы в обед list Element перечисляем вот эти вот названия свойств которые мы будем настраивать в двигатель то есть вот — это вот модели которое помещается в элемент в один единственный элемент и задаем соответственно параметр пока, что я — это за камень. А потом покажу как — это будет выглядеть по поводу создания удаления вот по кнопке для создания динамических кнопок у нас идёт обращение через айдишник list Model list Model через функция append добавляем объект, а этого то есть элемент и задаем — это в котором мы пишем батон и плюс тут намбер переменную числа. Чтобы просто различать кнопочки какие у нас находятся в списке кнопочка 1 2 3 4, но — это не значит, что вот этот номер будет соответствовать, а для удаления удаление кнопки по её. Яндексе мы делаем проверку находится ли что-то в текстовом поле если ничего не находится там и, тогда забираем параметр текстовое поле текст. Яндекс с помощью функции Remove по индексу удаляем этот элемент. И доля просто обновляем текстовое поле с индексом для индекса. Давайте запустим проект и посмотрим, что у нас будет работать. Каким образом как — это будет работать в данном случае при нажатии одной кнопки мы создаем динамические кнопки при нажатии 2 кнопки мы их удаляю, но только в том случае если у нас в текстовом поле на. Яндекс то есть вот она текстовое поле должен ходить сейчас там ничего нет поэтому мы не можем ничего удалить создаем кнопочки от кнопка 1234 с помощью параметра переменной нам нажимаем. Батон 3 помещается. Яндекс у нас идут с нуля удаляю. Всё кнопочка исчезли кнопки один нету далее нажимаем кнопочку 4 у неё Index 2012 индекса у нас в данном случае при удалении одного из элементов они все инкрементируется если не пересчитываются для всего списка удаляю кнопочку получили возможность удалить видео на остановке 2 3 и 5 1 4 удалили нажимаем кнопочки дальше за счёт перемены создается заново соответствует количеству элементов в списке то есть есть у нас элементов всего 7 то и кнопочка под номером семь 01234 отдает 7 индекс седьмой номер.

0 комментариев
0

Читайте также