1
我有一段代码在我的应用程序如下:意外行为
....
QStandardItemModel* authorModel = getAuthorModel(author);
// Create result tab
QTableView* tblView = new QTableView();
tblView->setModel(authorModel);
controller.queryAuthor(author, authorModel);
qDebug() << authorModel->setHeaderData(0, Qt::Horizontal, QVariant("Author Name"), Qt::DisplayRole);
qDebug() << authorModel->setHeaderData(1, Qt::Horizontal, QVariant("Author Id"), Qt::DisplayRole);
int tabIdx = ui->mainTabWidget->addTab(tblView, author);
ui->mainTabWidget->setCurrentIndex(tabIdx);
tblView->setColumnHidden(1, true);
该代码多次调用创建不同tableviews。当authorModel为空时,则设置headerdata失败,并且setColumnHidden失败,一旦填充数据,将显示默认数字标题并显示第1列。两个qDebug语句都返回false。
然而,当同样的人口模型被用来创建一个新的表视图,在新的视图列1没有隐藏的问题,及标头设置,因为他们应该。两个qDebug语句都返回true。
问题是什么?如何缓解?
你试过authorModel-> setColumnCount(2)设置列标题时,模型是空的前设置? – Viv 2013-03-09 20:36:13
@Viv解决了它。非常感谢你。 – lorefnon 2013-03-09 21:22:33
您的欢迎:)发布相同的答案,为什么这可以解决您的问题 – Viv 2013-03-09 21:46:24