0

私は Sailfish OS で TV ガイドを作成していますが、今のところ障害に直面しています。カスタマイズされたリストの各エントリをマークできるようにしたいので、背後にあるモデルを変更する必要があります。モデルを直接変更しようとしまし model.favorite = trueたが、うまくいきません。基になる を変更しようとし arrayOfObjectsましたが、UI に反映されず、ListView にアクセスできないため、更新をトリガーできません。カスタマイズしたモデルを作成しようとしましたが、そのインスタンスを参照できないため、役に立ちませんでした。

以下は、ほとんど基本的な QML を使用したレイアウトの非常に単純化された表現です。

Page {
    Flickable {
        Column {
            SlideshowView { // PathView
                model: arrayOfObjects
                delegate: channelDelegate
            }
        }
    }

    Component {
        id: channelDelegate
        ListView {
            id: channelList
            // ProgramModel just iterates thru arrayOfObjects and appends them
            model: ProgramModel {
                programs: arrayOfObjects
            }
            delegate: programDelegate
            Component.onCompleted: {
                // I can't reference channelList from here.
            }
        }
    }

    Component {
        id: programDelegate
        ListItem {
            Button {
                onClicked: {
                    // How do I reference channelList?
                    // Doing it by name doesn't work.
                }
            }
        }
    }
}

ApplicationWindow (これは機能します) を呼び出して、channelList.onCompleted (これも機能します) に接続するシグナルを送信しようとしましたが、そこからリストを参照できないため、役に立ちません。

QT 5.6 を使用しているため、一部のソリューションが機能しない場合があります。そして、私はそれを純粋な QML のままにしておくことを本当に望んでいます。C++ なし。

4

2 に答える 2