我正在寻找一种在未完全初始化的模型上创建无限视图的方法。我想创建类似于 Excel 电子表格的东西,我所做的只是从一个初始化模型开始(例如 100x100 空单元格,可能在一个具有空值的数据库上工作),然后动态添加下一行/列(和更新视图)一旦我们接近滚动条的末尾。
但我想知道这是否是最好的解决方案——我想我肯定会从一个只填充部分的模型中受益——我的意思是在模型中只存储关于填充单元格的信息,并让视图处理显示“空单元格” (一旦我们 - 例如 - 单击它们就会创建)。我知道有必要存储 XY 位置和单元格数据(而不仅仅是一个带有数据的 2D 容器),但我想尝试不同的解决方案:
- a) 有一个类似指针的容器,其中包含一个填充单元的列表,它们在 2D 平面上的位置
- b) 有一个大小为 (x,y) 的 2D 容器,其中 x 和 y 表示给定维度中的“最后填充的单元格”
对于这两种解决方案,我想在写入数据后动态分配更多位置。
所以我的问题是——如果没有填充空数据的模型甚至可以显示“幽灵单元”,如何使用 QT 模型/视图编程来实现?如果我能简要解释一下它是如何在 excel 等应用程序中完成的,那就太好了。