Russian Qt Forum
Ноябрь 23, 2024, 00:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка одинакового значения для свойств всех элементов одного типа  (Прочитано 2716 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Май 17, 2016, 12:21 »

Привет. Вопрос такой, можно ли как то задать одно значение для определенного свойства всех элементов одного типа? Что то типа статического свойства, т.е.
Код:
MyElementType.someProperty = value
, а ге указывать их в цикле для каждого?
В частности у меня рисуются переключатели, на которых есть рукоятка и три лампочки. Так вот на разных сценах у этих переключателей должны быть разного цвета лампы,
а плодить несколько переключателей, которые по сути делают одно и тоже я не вижу смысла.
Записан
Отражение луны
Гость
« Ответ #1 : Май 17, 2016, 17:58 »

Так по философии qml и не нужно плодить, наоборот он адаптирован под максимальное переиспользование кода.
Делаем компонент Switcher.qml. В нем в рутовый элемент выносим property:

Код:
Item {
id: rootSwitcherElement
property string color: "green"

Rectange {
//...
color: rootSwitcherElement.color
}
}

Затем используем его где-то:

Код:
Switcher {
id: switcher
color: "red"
}

По умолчанию будет использовано значение из Switcher.qml, то есть если не указать color: "red", то цвет будет зеленым. Если указать - тем, который укажете. Property binding так же будет работать.
И никаких циклов и прочих велосипедов)
« Последнее редактирование: Май 17, 2016, 18:00 от Komorebi » Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Май 18, 2016, 11:54 »

Я решил это другим путём. Для названий ламп я набил статические строки, затем зарегистрировал свой image provider, который по названиям ламп выдает нужные картинки. так даже лучше
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.