0

qtquick 1.1 を使い始めました。そして、主にパスビューから構成されるコンポーネントを設計しました。

Rectangle {
    id: pathViewElement

    PathView {
        id: pathView
        pathItemCount: 4
        preferredHighlightBegin: 0.5
        preferredHighlightEnd: 0.5
        highlightRangeMode: PathView.StrictlyEnforceRange
        model: myModel
        delegate: Item {
            width: valueText.width
            height: 50
            scale: 1.0-2*Math.abs(pathViewElement.width/2-(x+width/2)) / pathViewElement.width
            opacity: scale
            smooth: true
            Text {
                id: valueText
                anchors.centerIn: parent
                text: myModel.value
                font.pointSize: 35
            }
        }
        path: Path {
            startX: 0; startY: 25
            PathLine { x: pathViewElement.width; y: 25;}
        }
    }
}

この PathView は myModel というモデルを使用しています。他のファイルにある可能性があります。

問題は次のとおりです。同じコンポーネントを使用して、異なる値を変更できるようにしています。これらの各値は、別の QML ListModel に付属しています。では、PathView (myModel) で使用されるモデルを動的に変更するにはどうすればよいでしょうか?

また、PathView の作成中に、モデルを静的に設定できます

model: MyListModel{}

ここで、MyListModel は ListModel {} 宣言のみで構成される qmlFile です。しかし、3 番目のファイル内から PathView を動的に作成すると、MyApplication.qml など、コンパイラが ";" を期待しているため、pathViewElement.model: MyListModel{} を設定できません。それ以外の {}。どうしてこれなの?

4

1 に答える 1

0

では、PathView (myModel) で使用されるモデルを動的に変更するにはどうすればよいでしょうか?

それぞれのイベントの発生時に、ビューに割り当てられたモデルを直接変更できます。

例えば。この変更をマウスボタンのクリックで行うと仮定します:

onClicked:
{
   pathView.model = myNewModel
}

ここで、myNewModel は、置き換える新しいモデルの ID です。

しかし、3 番目のファイル内から PathView を動的に作成すると、MyApplication.qml など、コンパイラが ";" を期待しているため、pathViewElement.model: MyListModel{} を設定できません。それ以外の {}。どうしてこれなの?

この部分をもっとはっきり言えますか?

于 2013-02-15T13:21:29.250 に答える