小编art*_*ter的帖子

PyQT列表视图不响应datachanged信号

我一直在关注一些教程并尝试设置列表模型.我的主窗口有两个访问相同模型的列表视图.当我更新一个列表中的项目时,另一个列表不会更新自己,直到它获得焦点(我点击它).所以看起来似乎没有发出dataChanged信号,但我无法弄清楚我的代码是如何与我所基于的任何示例不同的.

main.py

class Main(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)
        self.ui = uic.loadUi("mainwindow.ui", self)

        # Test model and listviews
        data = [10,20,30,40,50]
        myModel = model.MyListModel(data)
        self.ui.listView.setModel(myModel)
        self.ui.listView_2.setModel(myModel)
Run Code Online (Sandbox Code Playgroud)

model.py

class MyListModel(QtCore.QAbstractListModel):
    def __init__(self, data=[], parent=None):
        super(MyListModel, self).__init__(parent)
        self.__data = data

    def rowCount(self, parent=QtCore.QModelIndex()):
        return len(self.__data)

    def data(self, index, role=QtCore.Qt.DisplayRole):
        row = index.row()
        if role in (QtCore.Qt.DisplayRole, QtCore.Qt.EditRole):
            return str(self.__data[row])

        if role == QtCore.Qt.ToolTipRole:
            return 'Item at {0}'.format(row)

    def flags(self, index):
        return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable

    def setData(self, index, value, role=QtCore.Qt.EditRole):
        if …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qabstractlistmodel pyqt5

4
推荐指数
1
解决办法
6054
查看次数

标签 统计

pyqt ×1

pyqt5 ×1

python ×1

qabstractlistmodel ×1

qt ×1