0

我觉得这可能是一个微不足道的问题,但我很难过。

我有两个列表视图,我以为我正在为每个列表视图创建一个模型,但看起来好像列表视图使用的是相同的模型。应该只显示在 listViewA 中的内容也显示在 listViewB 中。我该如何纠正这个问题,以便他们拥有自己的模型并显示正确的内容?

这是我从窗口类中的init方法运行的代码:

self.modelA = ListModel()
self.modelB = ListModel()
self.listViewA.setModel(self.modelA)
self.listViewB.setModel(self.modelB)

我有刷新模型内容的方法

def refreshA(self):


    self.modelA.removeRows(0, self.modelA.rowCount(QtCore.QModelIndex()), QtCore.QModelIndex())


    ... # populate modelA

    self.listViewA.update()


def refreshB(self):


    self.modelB.removeRows(0, self.modelB.rowCount(QtCore.QModelIndex()), QtCore.QModelIndex())


    ... # populate modelB

    self.listViewB.update()

我从刷新按钮运行两种刷新方法

def on_actionRefresh_triggered(self,checked=None):如果检查为 None:返回

    self.refreshA()
    self.refreshB()

在显示窗口之前

定义显示窗口(自我):

    self.refreshA()
    self.refreshB()
    self.show()
4

1 回答 1

0

毕竟这是微不足道的。所需要的只是创建两个特定的数据模型,每个列表视图一个。继承在这里起到了作用。

于 2012-10-04T23:20:22.650 回答