之前做的一个项目,用到QTablewidget,需要把数据库SQLite3中某一个表的数据加载到QTablewidget中。在此记录一下实现过程和代码。
代码:
//连接数据库之前判断数据库是否已经连接
QSqlDatabase db;
if(QSqlDatabase::contains("qt_sql_default_connection"))
db = QSqlDatabase::database("qt_sql_default_connection");
else
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
db.open();
if(!db.open())
{
qDebug()<<"open the file fail";
}
//查找数据库中的表
QString tableName = "softwareproject";
QSqlQuery query;
query.exec(QString("select * from %1").arg(tableName));
//设置tablewidget的表头项
ui->tableWidget->setHorizontalHeaderLabels({"项目名称","项目状态","当前模块","总体进度"});
int row = 0;
while(query.next())
{
ui->tableWidget->setRowCount(row+1);
for(int column = 0; column < query.record().count(); column++)
{
QTableWidgetItem *item = new QTableWidgetItem(query.value(column).toString());
ui->tableWidget->setItem(row,column,item);
}
row++;
}