• 6961阅读
  • 6回复

QTableWidget加载10万条以上数据 [复制链接]

上一主题 下一主题
离线searchcai
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-21
如何实现QTableWidget加载10万条以上数据

不想使用分页。

能不能在控件滚动条往下拉时再加载数据,类似现在有些电商网站在浏览大量商品信息时的效果。


离线XChinux

只看该作者 1楼 发表于: 2013-05-21
根据当前视图显示区域的所需,动态加载数据和卸载数据。
如果你内存能受得住,10万条数据一次性加载到内存,就不用做什么动态加载和卸载数据了。

无论如何,都要自己从QAbstractItemModel派生自己写model
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线hehuim

只看该作者 2楼 发表于: 2013-05-21
离线searchcai

只看该作者 3楼 发表于: 2013-05-21
我不想一次加载这么多数据,想在拖动滚动条时,看能不能通过计算坐标算出要加载哪些数据?
离线dbzhang800

只看该作者 4楼 发表于: 2013-05-21
引用第3楼searchcai于2013-05-21 11:59发表的  :
我不想一次加载这么多数据,想在拖动滚动条时,看能不能通过计算坐标算出要加载哪些数据?

首先,你需要使用QTableView是不是QTableWidget

其次,派生一个自己需要的 QAbstractItemModel,你只需根据自己需要实现若干虚函数即可
离线searchcai

只看该作者 5楼 发表于: 2013-05-21
数据确实是从数据库里来的。网上有说QTableView比QTableWidget效率高,请问高在哪里?我想应该不只是QTableWidget是
QTableView的子类的问题。

派生一个自己需要的 QAbstractItemModel,请问具体需要实现哪些虚函数呢?有代码参考一下没?
离线dbzhang800

只看该作者 6楼 发表于: 2013-05-21
1. 对于数据库,Qt已经提供了 QAbstractItemModel的派生类 QSqlTableModel
2. QTableWidget使用的是 QAbstractItemModel的派生类 QStandardItemModel 这种"标准"Model

如果你要实现自己的Model,Qt提供的例子也不少了
快速回复
限100 字节
 
上一个 下一个