C++ 我如何称呼数据更改
下面是我的添加行类。它是由代码调用的,而不是由表调用的,我希望它在添加新行时正确地调用dataChanged,尽管这不起作用,但表没有做任何事情。 我做错了什么C++ 我如何称呼数据更改,c++,qt4,qtableview,qabstracttablemodel,C++,Qt4,Qtableview,Qabstracttablemodel,下面是我的添加行类。它是由代码调用的,而不是由表调用的,我希望它在添加新行时正确地调用dataChanged,尽管这不起作用,但表没有做任何事情。 我做错了什么 void MyModel::add(const Person& p) { people.push_back(p); QModelIndex top = createIndex(people.count() - 1, 0, 0); QModelIndex bottom = createIndex(peop
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
}
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
}