Qt Qtableview 自定义model继承QAbstractTableModel怎么动态添加数据
时间: 2023-12-11 09:03:53 浏览: 91
如果你想动态添加数据到自定义的QAbstractTableModel子类中,可以使用beginInsertRows()和endInsertRows()函数来通知视图进行更新。以下是一个示例代码:
```python
class MyTableModel(QAbstractTableModel):
def __init__(self, data, header):
super().__init__()
self._data = data
self._header = header
def rowCount(self, parent=QModelIndex()):
return len(self._data)
def columnCount(self, parent=QModelIndex()):
return len(self._header)
def data(self, index, role=Qt.DisplayRole):
if role == Qt.DisplayRole:
return self._data[index.row()][index.column()]
def headerData(self, section, orientation, role=Qt.DisplayRole):
if role == Qt.DisplayRole and orientation == Qt.Horizontal:
return self._header[section]
def insertRow(self, row, data, parent=QModelIndex()):
self.beginInsertRows(parent, row, row)
self._data.insert(row, data)
self.endInsertRows()
```
在这个示例中,我们定义了一个名为insertRow()的函数来插入新的数据。这个函数接受三个参数:行号,新的数据和父索引。它使用beginInsertRows()和endInsertRows()函数来通知视图进行更新,并将新数据插入到_data列表中的指定位置。调用这个函数会触发视图的更新,添加新的行。
阅读全文