我有一个由子组件组成的Qml组件。在加载(渲染)所有内容之后,我想执行一些操作。
有没有办法找出所有组件何时加载?仅仅在根元素上使用Component.onCompleted
事件是不够的,因为不保证会加载子元素。
此致
答案 0 :(得分:3)
您应该可以使用QQuickWindow
的{{3}}信号来实现此目的:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
ApplicationWindow {
visible: true
width: 1280
height: 700
property bool initialised: false
onAfterSynchronizing: {
if (!initialised) {
print("initialising...");
// stuff...
initialised = true;
}
}
}
优点:
缺点:
QQuickWindow
衍生产品上使用它。另一种方法是使用afterSynchronizing()
;特别是它的Loader
信号:
Loader {
source: "MyComponent.qml"
onLoaded: {
// stuff...
}
}
优点:
Window
的作品;可以在场景的“层次结构”中的任何级别使用它。缺点: