【发布时间】:2011-05-22 23:11:49
【问题描述】:
我正在与来自Qt 的SQLite 合作,我似乎无法使从其中一个示例派生的代码正常工作。我的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 放入处理程序中)时,结果相同:没有显示标题或行。
【问题讨论】:
-
Dj 你把你的 QTableView 添加到相应的布局吗?
-
没有。事实上,我单独展示了它(以便它产生自己的窗口)。创建单独的表单并在其上放置 QTableView 后,问题就消失了。
-
你能把你所说的作为答案吗?我愿意接受,目前不可行。