如何判断型号变化?

问题描述 投票:0回答:1

我的

QListView
类由
QAbstractListModel
提供,我在其中实现了插入、删除、更新行。模型和列表视图之间没有问题。但是,我想订阅模型更改来进行一些自定义计算。

为此,我在 QListView 和 QAbstractListModel 中都找不到任何事件,我可以连接并接收诸如 onDataChanged 之类的信号。

python pyqt pyqt6
1个回答
0
投票

虽然没有

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)
© www.soinside.com 2019 - 2024. All rights reserved.