Представление QTableView ничего не отображает - PullRequest
4 голосов
/ 23 мая 2011

Я работаю с 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 в обработчик), он получился таким же: заголовки или строки не отображались.

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Вы добавили QTableView в соответствующий макет формы?

1 голос
/ 23 мая 2011

Похоже, вы не инициализировали модель одновременно.Если вы инициализируете модель после сопоставления с представлением, вы обязаны позвонить QAbstractItemView::update().Передача значения по умолчанию QModelIndex может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...