1

セイルフィッシュ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 でいくつかの例を見つけようとしましたが、結果はありませんでした

4

1 に答える 1