qml建立一个3列10行的list,数据项由外部变量导入,list有边框、颜色,list靠窗口右侧
时间: 2024-04-15 17:29:48 浏览: 94
要在QML中创建一个3列10行的列表,数据项由外部变量导入,列表具有边框和颜色,并靠窗口的右侧,你可以使用`GridView`和`ListModel`来实现。以下是一个示例:
```qml
import QtQuick 2.15
import QtQuick.Controls 2.15
Item {
width: 300
height: 400
GridView {
id: gridView
anchors.right: parent.right // 靠窗口右侧
width: parent.width / 3
height: parent.height
cellWidth: parent.width / 3
cellHeight: 40
model: myModel
delegate: Item {
width: gridView.cellWidth
height: gridView.cellHeight
Rectangle {
width: parent.width
height: parent.height
border.width: 1
border.color: "black"
color: model.color
Text {
anchors.centerIn: parent
text: model.text
}
}
}
}
ListModel {
id: myModel
}
Component.onCompleted: {
for (var row = 0; row < 10; row++) {
for (var column = 0; column < 3; column++) {
myModel.append({ text: "Item " + (row * 3 + column + 1), color: "lightblue" })
}
}
}
}
```
在这个示例中,我们创建了一个`Item`作为根元素,并设置宽度为300,高度为400。
在`Item`内部,我们使用了一个`GridView`作为列表的容器。我们通过设置`anchors.right: parent.right`将`GridView`靠窗口的右侧。设置了`width`为父元素宽度的1/3,`height`为父元素的高度。
在`GridView`的`delegate`中,我们使用一个`Item`作为每个单元格的容器。在每个单元格的`Item`中,我们使用一个带有边框和颜色的矩形作为背景,以及一个居中放置的文本元素来展示数据。
在`Component.onCompleted`中,我们使用一个嵌套循环来为`myModel`添加数据项。在这个示例中,我们添加了10行3列共30个数据项,每个数据项包含一个文本和一个颜色。
通过这种方式,你可以在QML中创建一个3列10行的列表,并且可以导入外部变量作为数据项,并为列表设置边框和颜色,并将列表靠窗口的右侧。你可以根据需要进一步自定义列表的样式和行为。
阅读全文