假設我們有一個像QML文件中的以下內容:的項目是不可訪問
Window {
Component.onCompleted: rect.color ="green"
TabView {
Tab {
Rectangle {
id: rect
color: "white"
}
}
}
}
當我運行這段代碼,出於某種原因,它給了我這個錯誤:
ReferenceError: rect is not defined
有人會說這是一個範圍問題,但下面的代碼工作正常:
Window {
Component.onCompleted: rect.color ="green"
Item {
Item {
Rectangle {
id: rect
color: "white"
}
}
}
}
在我來說,我有一個大表格和標籤裏面和我控制通過所有控制,以多種功能來驗證形式,即一些這樣的代碼:
function onClose() {
validate(control1);
validate(control2);
// etc
}
但同時通過id
訪問控制I得到上述錯誤。
'Tab'組件確實是'Loader'。只有在選項卡處於活動狀態時纔會創建組件。嘗試將活動設置爲true,然後指定所需的顏色。 – Jairo
正如@Jairo和doc所說:「標籤是懶惰加載的;只有當前標籤(例如,通過點擊它們)纔會有有效的內容。您可以通過設置活動屬性強制加載標籤爲真「。因此,不同'Tab's中的'active:true'應該可以解決你的問題。 – BaCaRoZzo
很好的解決方案,謝謝你們! – folibis