セイルフィッシュOS用の簡単なアプリを書こうとしているのですが、カバーとのやり取りに困ってしまいました。Cover は、アプリが非表示のときにホーム画面に表示されるシンプルな 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 でいくつかの例を見つけようとしましたが、結果はありませんでした