动态更改用作qml项基础的模型

动态更改用作qml项基础的模型,qml,qt-quick,Qml,Qt Quick,我开始使用qtquick 1.1。我设计了一个主要由pathview组成的组件 Rectangle { id: pathViewElement PathView { id: pathView pathItemCount: 4 preferredHighlightBegin: 0.5 preferredHighlightEnd: 0.5 highlightRangeMode: PathView.Str

我开始使用qtquick 1.1。我设计了一个主要由pathview组成的组件

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文件。但是,当我从第三个文件(比如MyApplication.qml)中动态创建PathView时,我无法设置pathViewElement.model:MyListModel{},因为编译器需要的是“;”而不是{}。为什么会这样

那么,如何动态更改PathView中使用的模型呢 (myModel)

发生相应事件时,可以直接更改为视图指定的模型

例如,假设您希望在单击某个鼠标按钮时完成此更改:

onClicked:
{
   pathView.model = myNewModel
}
这里,myNewModel是新模型要替换的id

但是当我从第三个文件中动态创建PathView时, 假设MyApplication.qml我无法设置pathViewElement.model: MyListModel{}作为编译器,应该是“;”而不是{}。为什么 这个

你能更清楚地说明这一部分吗