2012-10-04 44 views
0

我有一種感覺,這可能是一個微不足道的問題,但我很難過。PyQt - 兩個Listviews錯誤地使用相同的模型

我有兩個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): if c hecked是無:向顯示窗口

DEF的ShowWindow(個體)返回

self.refreshA() 
    self.refreshB() 

和先前:

self.refreshA() 
    self.refreshB() 
    self.show() 
+0

你可以發佈你的模型?我想你正在使用類屬性來存儲數據。 – Avaris

回答

0

而畢竟微不足道的。所需要的只是創建兩個特定的數據模型,每個列表視圖一個。繼承在這裏做了訣竅。

相關問題