为什么GridView项不包装?

时间:2017-06-03 14:08:25

标签: gridview qml qtquick2

我在我的qml代码中使用 GridView ,但它只显示了一行中的所有项目,但我不想要它。您可以在下面看到: click to see picture 这是我的代码:

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
    }

}

我该如何解决?

1 个答案:

答案 0 :(得分:1)

GridView中每个单元格的大小由cellWidthcellHeight决定。默认单元格大小为100x100。请注意,单元格大小决定了视图的布局。代表们可以决定如何覆盖为每个单元格保留的区域。您可能希望将Image - 委托的大小调整为cellWidthcellHeight,并将其fillMode设置为Image.PreserveAspectFit

GridView {
    id: gridView

    cellWidth: 200
    cellHeight: 200

    delegate: Image {
        width: gridView.cellWidth
        height: gridView.cellHeight
        fillMode: Image.PreserveAspectFit
    }
}