import QtQuick 2.0 Rectangle { id: root width: 240 height: 320 property bool showHeader: false property bool showFooter: false property bool enforceRange: false Component { id: myDelegate Rectangle { id: wrapper objectName: "wrapper" width: 80 height: 60 border.width: 1 Text { text: index } Text { x: 30 text: wrapper.x + ", " + wrapper.y font.pixelSize: 12 } Text { y: 20 id: textName objectName: "textName" text: name } Text { y: 40 id: textNumber objectName: "textNumber" text: number } property string theName: name color: GridView.isCurrentItem ? "lightsteelblue" : "white" } } Component { id: headerFooter Rectangle { width: 30; height: 30; color: "blue" } } GridView { objectName: "grid" width: 240 height: 320 cellWidth: 80 cellHeight: 60 cacheBuffer: 0 flow: (testTopToBottom == false) ? GridView.LeftToRight : GridView.TopToBottom layoutDirection: (testRightToLeft == true) ? Qt.RightToLeft : Qt.LeftToRight verticalLayoutDirection: (testBottomToTop == true) ? GridView.BottomToTop : GridView.TopToBottom highlightRangeMode: enforceRange ? GridView.StrictlyEnforceRange : GridView.NoHighlightRange preferredHighlightBegin: enforceRange ? 120 : 0 preferredHighlightEnd: enforceRange ? 120 : 0 model: testModel delegate: myDelegate header: root.showHeader ? headerFooter : null footer: root.showFooter ? headerFooter : null } }