QAbstractItemModel
に表示されるのサブクラスを作成していQTreeView
ます。
My index()
and function は、継承された関数を使用して をparent()
作成し、必要な、、および を提供します。ここでは、テスト目的で、data は Python 文字列です。QModelIndex
QAbstractItemModel
createIndex
row
column
data
class TestModel(QAbstractItemModel):
def __init__(self):
QAbstractItemModel.__init__(self)
def index(self, row, column, parent):
if parent.isValid():
return self.createIndex(row, column, "bar")
return self.createIndex(row, column, "foo")
def parent(self, index):
if index.isValid():
if index.data().data() == "bar": <--- NEVER TRUE
return self.createIndex(0, 0, "foo")
return QModelIndex()
def rowCount(self, index):
if index.isValid():
if index.data().data() == "bar": <--- NEVER TRUE
return 0
return 1
def columnCount(self, index):
return 1
def data(self, index, role):
if index.isValid():
return index.data().data() <--- CANNOT DO ANYTHING WITH IT
return "<None>"
index()
、parent()
、および関数内でdata()
、データを取り戻す必要があります。として提供されますQVariant
。QVariant から Python オブジェクトを取得するにはどうすればよいですか?