История изменений
Исправление kaffeine, (текущая версия) :
Всё перечисленное я уже использую, но этого мало.
Наследование в каком-то очень узком смысле есть, но нет возможности переопределения элементов
можно даже выдать свойством сам указатель на элемент, например на текст или ещё что, и обращаться к нему.
Например, хочется добавить элементы выше и ниже по иерархии. Наверно, можно добавить свойства itemUnderBase и itemAboveBase типа Item и использовать их как компоненты для загрузчика; сами загрузчики положить в нужных местах...
Хорошие мысли приходят поздно; смогу проверить, насколько это возможно, только через месяц-полтора (сейчас feature freeze).
Сейчас использую такую конструкцию (очень упрощенный вариант):
//Base.qml:
Item {
id: base
property Item item: base
property real fakeX: mX // mX - роль в модели
property real fakeY: mY // mY - роль в модели
x: fakeX
y: fakeY
}
//BaseWrapper.qml:
Item {
x: aggregatedBase.fakeX
y: aggregatedBase.fakeY
property BaseItem item: aggregatedBase
Item {
id: itemUnderBase
}
Base {
id: aggregatedBase
x: 0
y: 0
}
Item {
id: itemAboveBase
}
}
В зависимости от ряда условий, Repeater создаёт экземпляры того или иного класса.
нет из каропки, но есть хинт.
Вот именно, что их нет. Приходится городить огород из костылей и подпорок.
В данном случае получается настоящая плантация свойств.
Исходная версия kaffeine, :
Всё перечисленное я уже использую, но этого мало.
Наследование в каком-то очень узком смысле есть, но нет возможности переопределения элементов
можно даже выдать свойством сам указатель на элемент, например на текст или ещё что, и обращаться к нему.
Например, хочется добавить элементы выше и ниже по иерархии. Наверно, можно добавить свойства itemUnderBase и itemAboveBase типа Item и использовать их как компоненты для загрузчика; сами загрузчики положить в нужных местах...
Хорошие мысли приходят поздно; смогу проверить, насколько это возможно, только через месяц-полтора (сейчас feature freeze).
Сейчас использую такую конструкцию (очень упрощенный вариант):
//Base.qml:
Item {
id: base
property Item item: base
property real fakeX: mX // mX - роль в модели
property real fakeY: mY // mY - роль в модели
x: fakeX
y: fakeY
}
//BaseWrapper.qml:
Item {
x: aggregatedBase.fakeX
y: aggregatedBase.fakeY
property BaseItem item: aggregatedBase
Item {
id: itemUnderBase
}
Base {
id: aggregatedBase
x: 0
y: 0
}
Item {
id: itemAboveBase
}
}
В зависимости от ряда условий, Repeater создаёт экземпляры того или иного класса.
нет из каропки, но есть хинт.
Вот именно, что их нет. Приходится городить огород из костылей и подпорок.