我是Qt模型/视图框架的新手。在我的应用程序中,我想要1000 X 1000个单元格。应该有最低内存要求&它应该很快。我不知道这个模型的术语是什么。但我有自己的类知道如何处理存储在表中的双变量。目前我正在使用QLineEdit和Validator来创建单元格数组。但是对于细胞而言,它太慢了。 50 X 50.所以我决定采用旧的MS Excel方式。
我应该使用哪个小部件:QTableWidget
或QTableView
?
任何人都可以简单解释一下这个Model / View框架是什么?我不是计算机科学家,因此我觉得很难理解......
答案 0 :(得分:18)
cmannett85的建议很好。阅读文档大约十几次。
然后,如果性能和内存问题是您主要关注的问题,并且您认为可以超出QTableWidget实现,那么QTableView或QAbstractTableModel之上的QStandardItemModel界面是你在寻找什么。
由于您是Qt的模型 - 视图架构的新手,我建议您使用QStandardItemModel,直到您感觉自己已经掌握了它。如果您的性能仍然不够好,请通过实现自定义模型来避免大量内存重复和浪费的对象。另外,请自己a good textbook并阅读有关模型 - 视图框架的章节大约12次。只有这一部分值得用黄金计算,imho。
以下是Qt自定义模型 - 视图框架的基础知识:
如果您感觉既便宜又勇敢,请查看this excerpt实施自己的自定义模型。一次完成一项功能,随时随地玩它。
答案 1 :(得分:11)
要了解该框架,请从documentation开始。它起步缓慢,但变得适度广泛,涵盖了大部分相关课程。
QTableWidget或QTableView?
阅读完文档后,您会看到为什么这个问题没有任何意义:QTableWidget
使用 QTableView
来显示数据。 QTableWidget
(以及QTreeWidget
等)使用MVC框架,但它将它全部封装到一个方便的包中,可用于大多数目的,但如果你需要做一些不同的事情,你将不得不破解把它放到它的组成部分并重新实现你需要的部分。