2017-06-03 12 views
0

私はqmlコードでGridViewを使用していますが、1行にすべてのアイテムが表示されていますが、必要ありません。あなたは下の画像で見ることができます: click to see picture 、これは私のコードです: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 
    } 

} 

私はそれを解決することができますどのように?

答えて

1

GridViewの各セルのサイズは、cellWidthcellHeightで決まります。デフォルトのセルサイズは100x100です。セルのサイズによってビューのレイアウトが決まることに注意してください。デリゲートは、各セルに予約されている領域をどのようにカバーするかを決めることができます。 Image -delegateのサイズをcellWidthcellHeightに変更し、そのfillModeImage.PreserveAspectFitに設定するとよいでしょう。

GridView { 
    id: gridView 

    cellWidth: 200 
    cellHeight: 200 

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

ありがとうございました!できます! ;) –

関連する問題