1

ツリービューの助けが必要です。モデルを次のように指定すると

class TreeModel(QtGui.QStandardItemModel):

    def __init__(self,parent=None):
        QtGui.QStandardItemModel.__init__(self,parent)
        self.rootItem = QtGui.QStandardItem('root')

ウィンドウからツリーにアイテムを追加できます

def on_actionAddItem_triggered(self,checked=None):

    if checked is None: 
        return

    parent = self.model.invisibleRootItem()
    parent.appendRow(QtGui.QStandardItem("test"))

しかし、モデルをオーバーロードしようとすると、ツリービューが更新されません。コードはツリービューを更新できません。誰か説明してくれませんか?

class TreeModel(QtGui.QStandardItemModel):

    def __init__(self,parent=None):
        QtGui.QStandardItemModel.__init__(self,parent)
        self.rootItem = QtGui.QStandardItem('root')

    def data(self,index,role):

        if role == QtCore.Qt.DisplayRole:
            row = index.row()
            text = self.rootItem.child(row)
            return text.text()

    def columnCount(self,parent=None):
        return 1

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

    def headerData(self, column, orientation, role):
        if role == QtCore.Qt.DisplayRole:
            if orientation == QtCore.Qt.Horizontal:
                if column == 0:
                    return 'zero'
4

1 に答える 1

1

invisibleRootItem()が自動的にルート項目を指していないことを発見しました。指定するだけparent = self.model.rootItemで問題は解決しました。

于 2012-05-27T07:50:01.260 に答える