如果数据库的数据很多,一次性查询显示,会卡住界面,可以分批查询显示,当滑动条向下滚动时再继续查询加载。
获取滚动条:pVScrollBar = tableWidget->verticalScrollBar();
滚动条的信号:valueChanged 和 rangeChanged
int iSearchIndex = 0;//记录每次查询开始的下标,如每次查询20条记录,第一次iSearchIndex = 0;查询加载后iSearchIndex = 20;再次查询从20开始。(具体取决数据库的下标)
void onValueChanged (int value)
{
if (0 == value && pVScrollBar->maximum() > 0)
{
//上拉刷新
iSearchIndex = 0;//上滑到顶端
//从头即下标0开始查询加载
}
else if (pVScrollBar->maximum() == value)
{
//下拉继续查询加载
}
}
int iSearchStep = 20;每次查询加载条数
void onRangeChanged(int min, int max)
{
if (max - min < iSearchStep)
{
//继续加载
}
}