Я работаю с SQLite из Qt
, и я не могу сделать так, чтобы код, полученный из одного из примеров, работал правильно.Мой QTableView ничего не отображает, хотя его model
ни в коем случае не пуст:
QSqlTableModel model;
initializeDeliveryModel(&model);
QTableView *view = new QTableView;
view->setModel(&model);
//view->setItemDelegate(new QSqlRelationalDelegate(view));
view->setWindowTitle(QObject::tr("Delivery Table"));
view->show();
Код инициализации модели:
static void initializeDeliveryModel(QSqlTableModel *model)
{
model->setTable("DELIVERY");
int t = model->columnCount(); //6
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setHeaderData(0,
Qt::Horizontal,
QObject::tr("ID"));
model->setHeaderData(1,
Qt::Horizontal,
QObject::tr("Number"));
model->setHeaderData(2,
Qt::Horizontal,
QObject::tr("Complection"));
model->setHeaderData(3,
Qt::Horizontal,
QObject::tr("Has Arrived"));
model->setHeaderData(4,
Qt::Horizontal,
QObject::tr("Dealer"));
model->setHeaderData(5,
Qt::Horizontal,
QObject::tr("Price"));
if (!model->select())
{
QSqlError err = model->lastError();
QMessageBox::information(0,
qApp->tr("Failed to select data from table"),
err.text(),
QMessageBox::Ok);
}
t = model->rowCount(); // 18 on the last debug
}
Что мне здесь не хватает?Почему не отображаются столбцы и строки?
Добавление.Объект QTableView
создается изнутри обработчика нажатий кнопок моей основной формы.Когда я скопировал код из примера, как он был (и поместил код из main в обработчик), он получился таким же: заголовки или строки не отображались.