我正在尝试为旗鱼操作系统编写简单的应用程序,但是我遇到了与封面交互的麻烦。封面是一个简单的QML组件,当我的应用程序被隐藏时,它出现在主屏幕上。有一个代码如何初始化应用程序:
ApplicationWindow
{
Translator {
id: translator
Component.onCompleted: translator.translate("ru")
}
initialPage: Component { Menu { id:pageMenu } }
cover: Component { CoverPage {id: myCoverPage } }
}
CoverPage是一个由
组成的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上找到一些例子,但没有结果
答案 0 :(得分:1)
我猜你应该将pageMenu公开为全局别名,例如property alias pageMenu_global
作为ApplicationWindow的直接子项,并指向pageMenu