如何访问通过 Loader 加载的 qml 页面的公共属性?

Aqu*_*irl 5 qt loader qml qt-quick

AA.qml

Item
{
    id:             drawLinesOnC

    property string  lineColour
    property int     lineDrawingSourceType
    property variant startEndPointArray

}
Run Code Online (Sandbox Code Playgroud)

主文件

Loader
{
   id:     drawLineLoaderA
   source: "AA.qml"
}
Run Code Online (Sandbox Code Playgroud)

——

如何访问AA.qml通过 Loader 加载的页面的公共属性drawLineLoaderA

Aqu*_*irl 6

解决方法如下:

drawLineLoaderA.source = "DrawLineLoader.qml"
if (drawLineLoaderA.status == Loader.Ready)
{
    if (drawLineLoaderA.item && drawLineLoaderA.item.lineColour)
    {
        drawLineLoaderA.item.lineColour            = "black"
        drawLineLoaderA.item.lineDrawingSourceType = 2 
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我建议在这里更加小心。**首先,** 在你的加载器的 `onLoaded` 中完成所有的赋值。**第二,** 通过执行 `if (drawLineLoaderA.item && drawLineLoaderA.item.lineColour) { ... }` 重新检查您的项目是否具有各自的属性。 (2认同)