我在我的qml代码中使用 GridView ,但它只显示了一行中的所有项目,但我不想要它。您可以在下面看到: 这是我的代码:
import QtQuick 2.8
import QtQuick.Controls 2.1
import Qt.labs.folderlistmodel 2.1
ApplicationWindow{
id: a
width: 480
height: 640
FolderListModel{
id : listModel
folder: "/home/muhammad/Pictures"
nameFilters: ["*.jpg"]
}
Component{
id: dd
Image {
id: m
width: a.width/3
height: width
source: filePath
}
}
GridView{
verticalLayoutDirection: GridView.TopToBottom
layoutDirection: Qt.LeftToRight
anchors.fill: parent
flow: GridView.FlowLeftToRight
model: listModel
delegate: dd
}
}
我该如何解决?
答案 0 :(得分:1)
GridView
中每个单元格的大小由cellWidth
和cellHeight
决定。默认单元格大小为100x100。请注意,单元格大小决定了视图的布局。代表们可以决定如何覆盖为每个单元格保留的区域。您可能希望将Image
- 委托的大小调整为cellWidth
和cellHeight
,并将其fillMode
设置为Image.PreserveAspectFit
。
GridView {
id: gridView
cellWidth: 200
cellHeight: 200
delegate: Image {
width: gridView.cellWidth
height: gridView.cellHeight
fillMode: Image.PreserveAspectFit
}
}