0

これは些細な質問かもしれないと感じていますが、困惑しています。

2 つの listView があり、各 listView のモデルを作成していると思っていましたが、リストビューが同じモデルを使用しているように見えます。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 の場合: return

    self.refreshA()
    self.refreshB()

ウィンドウを表示する前に

デフォルトshowWindow(自己):

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

1 に答える 1

0

やっぱり些細なことでした。必要なのは、リストビューごとに 1 つずつ、2 つの特定のデータ モデルを作成することだけでした。ここでは継承がうまくいきました。

于 2012-10-04T23:20:22.650 に答える