无法访问QML元素

无法访问QML元素,qml,sailfish-os,Qml,Sailfish Os,我试图为sailfish操作系统编写简单的应用程序,但在与cover的交互方面遇到了麻烦。Cover是一个简单的QML组件,当我的应用程序被隐藏时出现在主屏幕上。有一段代码说明应用程序是如何初始化的: ApplicationWindow { Translator { id: translator Component.onCompleted: translator.translate("ru") } initialPage: Compone

我试图为sailfish操作系统编写简单的应用程序,但在与cover的交互方面遇到了麻烦。Cover是一个简单的QML组件,当我的应用程序被隐藏时出现在主屏幕上。有一段代码说明应用程序是如何初始化的:

ApplicationWindow
{
    Translator {
        id: translator
        Component.onCompleted: translator.translate("ru")
    }

    initialPage: Component { Menu { id:pageMenu } }
    cover: Component { CoverPage {id: myCoverPage } }
}
封面是一个qml文件,包含

import QtQuick 2.0
import Sailfish.Silica 1.0

CoverBackground {
    CoverPlaceholder {
        id: placeHolder
        text: pageMenu.testprop            // line 38
        Component.onCompleted: {
            console.log("Component.onCompleted placeHolder")
        }
    }
}
问题是,我无法从该文件(CoverPage.qml)之外的代码的任何部分访问封面上的任何元素。例如,在这种情况下,我得到了以下错误:

[D] onCompleted:11 - Component.onCompleted pageMenu
[D] onCompleted:40 - Component.onCompleted placeHolder
[W] unknown:38 - file:///usr/share/bashReaderOnlyQML/qml/pages/CoverPage.qml:38: ReferenceError: pageMenu is not defined

但pageMenu是在另一个文件中定义的,该文件是从ApplicationWindow.initialPage属性加载的,正如您从日志中看到的,已成功初始化。我试图在Github上找到一些示例,但没有结果

我想您应该将pageMenu作为全局别名公开,例如,
属性别名pageMenu\u global
作为ApplicationWindow的直接子级,并使其指向
pageMenu

创建CoverBackground的新属性,并通过此属性传递对pageMenu的引用