qt使用qsqltablemodel和tableview控件对数据库进行操作和显示,但是qsqltablemodel本身并不支持翻页操作。
但是qsqltablemodel的select函数会调用selectStatement函数返回的语句,进行数据库的查询操作,也就是说可以通过继承qsqltablemodel类,覆写其中的selectStatement函数来实现显示特定页数的数据
自定义类mySqlTableModel 继承qsqltablemodel
class mySqlTableModel : public QSqlTableModel
{
public:
mySqlTableModel();
QString selectStatement() const;
void totalRowCount();
void setSelectAllData(bool choose);
private:
int totalRows;
int currentPage;
bool selectAllData;
};
覆写selectStatement函数
QString mySqlTableModel::selectStatement()const{
QString strRet;
if(selectAllData){
return this->QSqlTableModel::selectStatement();
}else{
strRet+="select * from table_1 limit 5 offset "+QString::number((currentPage-1)*5);
}
return strRet;
}
为什么加一个sel