qt中的显示模式是model/view方式。
一、数据显示
我常用两种方式利用qtableview显示数据。
如下述代码所述,条件编译对应的不同代码代表了两种不同的显示方式。第一种方式利用QSqlQueryModel,利用不同的sql语句,显示不同的表格和数据。
void MeasureDB::showDataTable(tableInfo &table,QString filter)
{
#if 0
qDebug()<<"cur filter string"<<filter;
QSqlQueryModel *queryModel = new QSqlQueryModel(this);
QSqlQuery query(currDatabase());
QString strSql=QString("select * from %1 where tm like \'%2%\' order by id DESC")
.arg(table.name).arg(filter);
if(query.exec(strSql))
{
queryModel->setQuery(query);
for(int i=0;i<table.fieldTitles.split(',').count();i++)
{
QString tmp=table.fieldTitles.split(',').at(i);
queryModel->setHeaderData(i,Qt::Horizontal, QString(tmp.left(tmp.length()-1)));
}
while (queryModel->canFetchMore())
queryModel->fetchMore();
table.tableView->setModel(queryModel);
}
else
qDebug()<<"query er