Что для вас "вычислено"?
Да, объекты созданы и являются "живыми" - поэтому, если есть какие-либо привязки, которые влияют на эти Элементы, они будут оценены.
* 1004Будут ли они оказаны?Нет. Когда они невидимы, движок запрещает им переходить в графический процессор.
Чтобы проверить это утверждение, см. Следующий пример:
ApplicationWindow {
id: window
visible: true
width: 600
height: 600
Rectangle {
width: 100
height: 100
color: 'green'
Timer {
running: true
interval: 1000
repeat: true
onTriggered: parent.visible = !parent.visible
}
}
}
Видимость Rectangle
переключается каждыесекунда.
Если вы посмотрите вывод, сгенерированный путем установки переменной envrionment:
QSG_DEBUG_RENDERER=render
, вы увидите, что это переключает количество визуализируемых узлов между 0 и 1.
Rendering:
-> Opaque: 0 nodes in 0 batches...
-> Alpha: 0 nodes in 0 batches...
-> times: build: 0, prepare(opaque/alpha): 0/0, sorting: 0, upload(opaque/alpha): 0/0, render: 0
Renderer::render() QSGAbstractRenderer(0x2341b258) "rebuild: full"
Rendering:
-> Opaque: 1 nodes in 1 batches...
-> Alpha: 0 nodes in 0 batches...
- 0x38589200 [ upload] [noclip] [opaque] [ merged] Nodes: 1 Vertices: 4 Indices: 6 root: 0x0
-> times: build: 0, prepare(opaque/alpha): 0/0, sorting: 0, upload(opaque/alpha): 0/0, render: 1
Renderer::render() QSGAbstractRenderer(0x2341b258) "rebuild: none"
Однако лучшим решением было бы использование Loader
для загрузки нужного компонента:
Loader {
sourceComponent: (isGradient ? gradientComponent :
(isSolid ? solidComponent :
(isImage ? imageComponent : null)))
Component {
id: gradientComponent
...
}
...
}