Qt C++ Qtableview 自定义model继承QAbstractTableModel 重写insertRows
时间: 2024-01-15 19:05:14 浏览: 132
如果你想在C++中重写insertRows()函数来实现动态添加数据到自定义的QAbstractTableModel子类中,可以按照以下方式进行操作:
```cpp
bool MyTableModel::insertRows(int row, int count, const QModelIndex& parent)
{
beginInsertRows(parent, row, row + count - 1);
for(int i = 0; i < count; i++)
{
QList<QVariant> rowData;
for(int j = 0; j < columnCount(); j++)
{
rowData.append(QVariant());
}
m_data.insert(row + i, rowData);
}
endInsertRows();
return true;
}
```
在这个示例中,我们重写了insertRows()函数。这个函数接受三个参数:行号、要插入的行数和父索引。它使用beginInsertRows()和endInsertRows()函数来通知视图进行更新,并在m_data列表中插入新行。在这个示例中,我们将新行初始化为包含空值的QList<QVariant>。最后,函数返回true以表示插入操作已成功完成。
注意:m_data是一个QList<QList<QVariant>>类型的成员变量,用于存储表格中的数据。
阅读全文