Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何访问加载器对象内项目的属性_Qt_Qml_Qtquickcontrols2 - Fatal编程技术网

Qt 如何访问加载器对象内项目的属性

Qt 如何访问加载器对象内项目的属性,qt,qml,qtquickcontrols2,Qt,Qml,Qtquickcontrols2,我使用qml加载程序组件将页面动态推送到视图中。现在,我推送的页面有各种属性,我想从加载程序组件本身访问它们。但是,我无法为这些属性创建别名。所以,我有这样的想法: Loader { id: loginLoader source: "qrc:/pages/IdPinLoginPage.qml" property alias hasNavBar: loginLoader.item.hasNavBar property alias hasStatusBar: log

我使用qml
加载程序
组件将页面动态推送到视图中。现在,我推送的页面有各种属性,我想从加载程序组件本身访问它们。但是,我无法为这些属性创建别名。所以,我有这样的想法:

Loader {
    id: loginLoader
    source: "qrc:/pages/IdPinLoginPage.qml"

    property alias hasNavBar: loginLoader.item.hasNavBar
    property alias hasStatusBar: loginLoader.item.hasStatusBar
}

这将导致
无效的别名目标位置
。如何将这些属性重定向到加载器组件中的父级?

我建议您使用加载器的
sourceComponent
而不是
source
属性,以便轻松地将值分配/绑定到加载的项。
此外,对于访问加载的项目,您可以使用加载程序的
项目
属性:

Loader {
    id: loader
    sourceComponent: Component {
        SampleItem {
            foo: 13         //assign values to loaded item properties
            bar: "aleyk!"
        }
    }
}

Text {
    text: loader.item.bar   //Access to loaded item properties
}
SampleItem.qml

import QtQuick 2.6

Item {
    property int foo: 0
    property string bar: "salam";
}

为什么使用别名<代码>属性bool hasNavBar:loginLoader.item!==无效的loginLoader.item.hasNavBar:false(或init值)
应该足够了。我使用了一个别名,因为这些属性值可能在运行时更改,但我想我可以始终使用
loginLoader.item。
好吧,使用我的方法不会阻止属性绑定。