1

我正在玩 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 现在确实显示了它。

任何线索这里有什么问题?

4

1 回答 1

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();
于 2012-09-17T16:45:06.130 回答