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 に答える