PyQt - 两个Listviews错误地使用相同的模型

时间:2012-10-04 08:22:56

标签: listview pyqt

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

我有两个listViews,我以为我正在为每个listView创建一个模型,但看起来好像listviews使用的是同一个模型。仅应显示在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):         如果选中“无”:返回

    self.refreshA()
    self.refreshB()

并在显示窗口之前

def showWindow(self):

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

1 个答案:

答案 0 :(得分:0)

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