Wil*_*3uk 6 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(people.count() - 1, 3, 0);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
}
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
这应该工作.可能你甚至不需要emit dataChanged
| 归档时间: |
|
| 查看次数: |
7246 次 |
| 最近记录: |