我有一个ListView和一个GridView。想象一下这样:第一个视图呈现类别,第二个视图呈现每个类别中的文章。当ListView的当前索引由javascript更改时,我想动态更改GridView的数据模型。我们如何做到这一点?通过javascript更改QML GridView模型
2
A
回答
3
您只需分配一个新模型。以下是一个基于ListModel文档的示例。该模型在左侧的ListView中显示模型中的水果。单击委托时,它将GridView右侧的模型设置为由attributes
角色定义的列表。
import QtQuick 1.0
Item {
width: 600; height: 400
ListView {
width: 300; height: 400
model: fruitModel
delegate: Text {
font.pixelSize: 20
text: name
width: 300
MouseArea {
anchors.fill: parent
onClicked: grid.model = attributes
}
}
}
GridView {
id: grid
x: 300; width: 300; height: 400
delegate: Text {
text: description
font.pixelSize: 20
}
}
ListModel {
id: fruitModel
ListElement {
name: "Apple"
cost: 2.45
attributes: [
ListElement { description: "Core" },
ListElement { description: "Deciduous" }
]
}
ListElement {
name: "Orange"
cost: 3.25
attributes: [
ListElement { description: "Citrus" }
]
}
ListElement {
name: "Banana"
cost: 1.95
attributes: [
ListElement { description: "Tropical" },
ListElement { description: "Seedless" }
]
}
}
}
这是一个嵌套模型的例子,但也有其他的可能性。例如,如果您从数据库获取数据,也许您只需更改GridView模型使用的查询,而不是设置不同的模型。
2
取决于您的模型。假设CategoriesModel
有category
作用,并ArticlesModel
有setCategory
方法:
ListView {
model: CategoriesModel {}
delegate: Item {
MouseArea {
anchors.fill: parent
onClicked: {
grid_view.model.setCategory(model.category)
}
}
// ...
}
}
GridView {
id: grid_view
model: ArticlesModel {}
// ...
}
相关问题
- 1. 通过模型迭代QML
- 2. yii2更改gridview模型
- 3. 使用QML更改C++模型
- 4. QML - 通过模型访问QList数据
- 5. ASP GridView通过分页更改
- 6. 通过javascript更改href
- 7. 通过Javascript更改图像?
- 8. Highcharts通过javascript更改pointPlacement
- 9. MVC模型通知更改
- 10. 动态更改用作qml项目基础的模型
- 11. 如何在QML中创建基于状态的模型更改
- 12. 通过QML中C++模型的索引获取数据
- 13. 从qml更改上下文
- 14. 模型JavaScript使用UML更改为HTML?
- 15. 使用JavaScript更改css类模型
- 16. 通过Javascript更改CSS属性
- 17. 通过javascript更改鼠标图标
- 18. 通过JavaScript更改body标签样式
- 19. 通过Javascript更改页面背景
- 20. 通过Javascript更改jstree节点图标
- 21. 如何通过JavaScript更改FontSize?
- 22. 通过JavaScript更改CSS属性
- 23. 通过javascript更改类输入值
- 24. 如何通过JavaScript更改CSS渐变?
- 25. 通过JavaScript更改样式图像
- 26. 通过javascript捕获URL更改事件
- 27. 通过javascript处理URL更改
- 28. 编程方式更改通过JavaScript
- 29. 通过javascript更改输入值
- 30. 通过Javascript或php更改CSS类