当关联模型获得数据时,QTableView不显示数据

时间:2012-09-17 16:36:57

标签: qt sqlite

我正在玩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现在可以显示它。

这里有什么问题吗?

1 个答案:

答案 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();