C++ QTableWidget与QTableView
我不熟悉Qt的这个模型/视图框架。在我的应用程序中,我希望有1000 X 1000个单元。应该有最小的内存需求&它应该很快。我不知道这个模型术语是用来做什么的。但是我有自己的类,它知道如何处理存储在表中的双变量。目前,我正在使用QLineEdit和验证器来创建单元格数组。但对于大于50 X 50的细胞来说,速度太慢了。所以我决定走一条好老路 那么我应该使用哪个小部件:C++ QTableWidget与QTableView,c++,qt,qtableview,qtablewidget,C++,Qt,Qtableview,Qtablewidget,我不熟悉Qt的这个模型/视图框架。在我的应用程序中,我希望有1000 X 1000个单元。应该有最小的内存需求&它应该很快。我不知道这个模型术语是用来做什么的。但是我有自己的类,它知道如何处理存储在表中的双变量。目前,我正在使用QLineEdit和验证器来创建单元格数组。但对于大于50 X 50的细胞来说,速度太慢了。所以我决定走一条好老路 那么我应该使用哪个小部件:QTableWidget或QTableView 谁能简单地解释一下这个模型/视图框架是什么?我不是一个计算机科学专业的人,因此我发
QTableWidget
或QTableView
谁能简单地解释一下这个模型/视图框架是什么?我不是一个计算机科学专业的人,因此我发现很难理解…要理解这个框架,首先要了解它。它开始缓慢,但变得适度广泛,涵盖了所涉及的大多数类 QTableWidget还是QTableView
阅读文档后,您将看到为什么这个问题没有真正意义:
QTableWidget
使用QTableView
来显示数据QTableWidget
(以及QTreeWidget
等)使用MVC框架,但它将所有内容封装到一个方便的包中,对大多数用途都很有用,但如果需要做一些不同的事情,则必须将其分解为组件部分,并重新实现所需的位。cmannett85的建议是一个很好的建议。把这些文件读十几遍
然后,如果性能和内存问题是您主要关心的问题,并且您认为您可以超越QTableWidget实现,那么在or之上的接口就是您想要的
由于您不熟悉Qt的模型视图体系结构,我建议您使用QStandardItemModel,直到您感觉自己掌握了其中的诀窍。若您的性能仍然不够好,那个么通过实现自定义模型来避免大量内存复制和对象浪费。另外,让你自己阅读它关于模型视图框架的章节大约12遍。伊姆霍说,仅这一部分的黄金价值就相当于它的重量
以下是Qt的自定义模型视图框架的基础知识:
- 您的实际数据存储在某个列表/树中
- 模型为查询和编辑数据提供了标准框架
- 代理模型允许您在不影响原始模型的情况下对数据进行排序/筛选
- 视图提供了一种直观观察数据并与数据交互的方法
- 委托(通常是可选的)调整数据的外观,并为数据提供自定义编辑器
如果你觉得既便宜又勇敢,那就试试实现你自己的定制模型吧。一次完成一个功能,然后边走边玩。谢谢你,我会买那本书并按照你的指导去做。“这个摘录”链接现在已经失效了。谢谢你读了大约2-3遍,开始了解它。
QTableWidget
使用了一个QTableView
,这实际上就是我想要的信息,谢谢。编辑:我看到QTableWidget
甚至是QTableView