2
我有一個由子組件組成的Qml組件。所有東西都被加載(渲染)後,我想執行一些操作。 有沒有辦法找出何時加載所有組件?僅在根元素上使用Component.onCompleted
事件是不夠的,因爲不保證孩子被加載。頁面呈現/加載所有組件時的事件
問候,
我有一個由子組件組成的Qml組件。所有東西都被加載(渲染)後,我想執行一些操作。 有沒有辦法找出何時加載所有組件?僅在根元素上使用Component.onCompleted
事件是不夠的,因爲不保證孩子被加載。頁面呈現/加載所有組件時的事件
問候,
您應該能夠使用的QQuickWindow
的afterSynchronizing()
信號來實現這一目標:
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
衍生物。另一種方法是使用Loader
;特別是其loaded()
信號:
Loader {
source: "MyComponent.qml"
onLoaded: {
// stuff...
}
}
優點:
Window
的作品;可以在場景的「層次結構」中的任何級別使用它。缺點:
謝謝。裝載機工作正常。 – Hyndrix