我试图设计一个qml项目,其中包含数千个排列为网格/表格的项目。
我尝试了几种方法(TableView,GridView),但每次尝试使用行*列格式或内存来调整Component的大小时都会遇到问题。
我到目前为止找到的最佳方法如下:
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
ApplicationWindow {
title: qsTr("Hello World")
width: 800
height: 600
visible: true
Item {
id: grid
property int numRows: 1000
property int numColumns: 1000
property int cellSize: 35
property int cellSpacing: 1
anchors.fill: parent
ScrollView {
id: scrollView
anchors.fill: parent
anchors.centerIn: parent
contentItem: columnsList
ListView {
id: columnsList
anchors.fill: parent
anchors.centerIn: parent
orientation: ListView.Vertical
spacing: grid.cellSpacing
clip: true
interactive: false
cacheBuffer: 1
model: grid.numRows
delegate: ListView {
id: row
width: columnsList.width
height: grid.cellSize
orientation: ListView.Horizontal
spacing: grid.cellSpacing
clip: true
interactive: false
cacheBuffer: 1
model: grid.numColumns
delegate: Rectangle {
width: grid.cellSize
height: grid.cellSize
color: "green"
}
}
}
}
}
}
性能还可以,但水平滚动条没有显示! 我也尝试手动设置高度和宽度,但是这会导致创建所有单元格并且它是不可接受的。
这是一个好方法吗? 是否有解决方法使水平滚动条出现?