我的
QListView
类由 QAbstractListModel
提供,我在其中实现了插入、删除、更新行。模型和列表视图之间没有问题。但是,我想订阅模型更改来进行一些自定义计算。
为此,我在 QListView 和 QAbstractListModel 中都找不到任何事件,我可以连接并接收诸如 onDataChanged 之类的信号。
虽然没有
dataChanged
信号,但有 dataChanged()
槽。
您可以使用它来实现自定义数据更改信号。
class YourListView(QListView):
dataChangedSignal = pyqtSignal(QModelIndex, QModelIndex, list) # emit the data received by dataChanged() slot
...
# override the dataChanged() slot
def dataChanged(self, top_left, bottom_right, roles=None):
if role is None:
role = []
super().dataChanged(top_left, bottom_right, roles):
QListView.dataChangedSignal.emit(top_left, bottom_right, roles)