【发布时间】:2014-07-25 09:23:58
【问题描述】:
我的 QTableView 不显示来自 QStringList 的字符串。
在 QTableWidget 我有 QTableWidgetItems。我必须手动设置字符串还是视图会自动显示它们?在所有教程中我都没有看到“->setItem”,它们会自动出现。
我有 2 个 QLineEdits 将 QStrings 提供给我的模型:
void View::pushButtonClicked() {
meinModel->setData(txtname->text(), txtvalue->text());
}
在 setData 中,我将字符串推送到两个 QList 中。
names.push_back(name);
values.push_back(value);
我用左上角和右下角的索引发出一个 dataChanged 信号。
QModelIndex topLeft = createIndex(names.size()+1,0);
QModelIndex bottomRights = createIndex(names.size()-1,1);
emit dataChanged(topLeft, bottomRights);
我有一个 QAbstractTableModel,所以我覆盖了 columnCount、rowCount 和 data 方法。 在我的 data() 方法中,我返回我的值和名称:
QString returnValue;
if(0 == index.column()) { returnValue = names.at(index.row()); }
所有这些都在没有警告的情况下编译,但不能正常工作:(我做错了什么吗?
【问题讨论】:
-
您没有显示足够的代码来判断问题所在。例如,模型中的
setData没有QAbstractItemModel::setData的签名。
标签: qt view model qtableview qabstractitemmodel