以下代码在 6.5.1 中按预期工作,但在 5.15.2 中则不然
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
ListView {
anchors.fill: parent
model: fakeModel
delegate: Text {
text: modelData.name
}
section.property: "blockName"
section.criteria: ViewSection.FullString
section.delegate: Text {
text: section
color: "red"
}
}
property var fakeModel: [{
"blockName": "ABC",
"name": "Lorem Ipsum"
}, {
"blockName": "ABC",
"name": "Front Raises"
}, {
"blockName": "ZXC",
"name": "Band Tall "
}, {
"blockName": "ZXC",
"name": "Overhead"
}]
}
我正在使用 EndeavourOS Linux 6.1.55-1-lts
5.15.2 中:
在 6.5.2 中:
有谁知道是否有任何解决方法可以使列表视图部分与 qt5 一起使用?
谢谢
正如您在评论中指出的,对于 Qt5.15.x,请使用
ListModel
。如果您希望保留声明性数组,您可以读取并转换它以填充您的 ListModel
,例如
ListView {
anchors.fill: parent
model: ListModel {
function load(arr) { arr.forEach(e => append(e)) }
Component.onCompleted: load(fakeModel)
}
delegate: Text {
text: name
}
section.property: "blockName"
section.criteria: ViewSection.FullString
section.delegate: Text {
text: section
color: "red"
}
}
property var fakeModel: [{
"blockName": "ABC",
"name": "Lorem Ipsum"
}, {
"blockName": "ABC",
"name": "Front Raises"
}, {
"blockName": "ZXC",
"name": "Band Tall "
}, {
"blockName": "ZXC",
"name": "Overhead"
}]