modelCrm->select() // 这一步用来将数据显示到tableview
// 我发现select()这一步是将数据全部读入后再显示出来,比如有5万条数据,他是全部都写入tableview,再让tableview显示出来,这样就有有时候出现卡死的情况,我的想法先让他显示出来一部分,比如256条或者512条,随着我拉动tableview的垂直滑块,将数据再全部显示出来
动态加载,举个例子,先添加100条,很快就好了,当滑到最底部时在加载100条:
connect(ui->listView->verticalScrollBar(),&QAbstractSlider::valueChanged,[=](int value){
if(value == ui->listView->verticalScrollBar()->maximum()){
loadData();
}
});
如果数据量过大,可以采用
QSqlQueryModel::canFetchMore()
和QSqlQueryModel::fetchMore()
来控制显示数据量https://gitee.com/sorrowfeng/QWidgetDemo/tree/master/other/dbpage
可以看看这个参考代码,数据库分页加载的