QTableView视图不显示任何内容
QTableView view displays nothing
我使用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
对象是从我的主窗体的按钮点击处理程序内部创建的。当我从示例中原样复制代码(并将代码从主窗体放入处理程序)时,结果是一样的:没有显示标题或行。
您是否将QTableView
添加到相应的表单布局中?
您似乎没有同时初始化模型。如果在与视图关联后初始化模型,则您有责任调用QAbstractItemView::update()
。传递默认的QModelIndex
可能会起作用。
我对这个问题的解决方案是,假设您的QTableView小部件已正确创建,模型数据已设置,并且它在GUI中显示为一个空框。您需要致电:
emit layoutChanged();
在将数据设置为模型之后。该表应在此之后填充。
相关文章:
- 如何在cpp中使用地图显示给定日期范围内(在下面的问题中)的费率?
- QChart在使用QDateTimeAxis时不显示任何系列数据
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 为什么下面的Hello World程序在PowerShell上没有显示任何输出?同一程序在CMD上显示正确的输出
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- C++ 中是否有任何内置阶乘函数?
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 在不到一分钟的情况下,在一秒钟内显示计时器
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 如何将文件的路径(或任何文本)显示/附加到编辑框中?(C++ Win32 API)
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 我如何在常数时间(O(1))内获得字母表(1-26)中字符的数值/位置,而不使用任何内置方法或函数
- C++中的任何内置哈希方法
- c++库中的任何内置夹子方法