我如何调用 dataChanged
Posted
技术标签:
【中文标题】我如何调用 dataChanged【英文标题】:How do I call dataChanged 【发布时间】:2011-05-14 11:00:34 【问题描述】:以下是我添加的一个行类。它由代码调用,而不是由表调用,我希望它在添加新行时正确调用 dataChanged,虽然这不起作用,但表没有做任何事情。 我做错了什么?
void MyModel::add(const Person& p)
people.push_back(p);
QModelIndex top = createIndex(people.count() - 1, 0, 0);
QModelIndex bottom = createIndex(people.count() - 1, 3, 0);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
【问题讨论】:
【参考方案1】:dataChanged
仅适用于现有数据,您需要调用beginInsertRows()
/ endInsertRows()
void MyModel::add(const Person& p)
beginInsertRows(QModelIndex(), people.count(), people.count());
people.push_back(p);
endInsertRows();
QModelIndex top = createIndex(people.count() - 1, 0, 0);
QModelIndex bottom = createIndex(people.count() - 1, 3, 0);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
应该可以。可能你甚至不需要emit dataChanged
【讨论】:
以上是关于我如何调用 dataChanged的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC如何调用外部接口?最好能给个接收的方法我参考下。