我正在玩Qt(我是初学者),并尝试在QTableView中显示表的数据。 到目前为止,我有这个:
ui->setupUi(this);
QSqlDatabase db;
db=QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (db.open())
qDebug() << "success";
else
qDebug() << "failed";
QSqlTableModel model;
model.setTable("names");
model.select();
qDebug() << model.rowCount();
ui->tableView->setModel(&model);
问题在于,模型确实获得了数据(2行),但QTableView现在可以显示它。
这里有什么问题吗?
答案 0 :(得分:6)
查看您的代码可能是您的model
对象超出范围。进行这些改动,希望他们能够纠正您的问题。
ui->setupUi( this );
// Setup db
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if( db.open() )
qDebug() << "success";
else
qDebug() << "failed";
// Initialize your model with the database.
QSqlTableModel* model = new QSqlTableModel( this, db );
// Let the QTableView take ownership of the model.
ui->tableView->setModel( model );
// Add the rest of your code here.
model->setTable( "names" );
model->select();
qDebug() << model->rowCount();