QTreeView
에 표시 될 QAbstractItemModel
의 하위 클래스를 생성 중입니다.파이썬 객체를 PyQt4의 QVariant에서 다시 얻으려면 어떻게해야합니까?
내 index()
및 parent()
함수 QAbstractItemModel
createIndex
유전 함수를 사용하고 께 row
, column
및 data
필요 QModelIndex
제공을 생성한다. 여기서 테스트 목적으로 데이터는 파이썬 문자열입니다. 나는 다시 내 데이터를 얻을 필요가 index()
, parent()
및 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>"
. QVariant
으로 제공됩니다. QVariant에서 파이썬 객체를 다시 얻으려면 어떻게해야합니까?
이 답변은 초기 질문과 더 유사합니다. 그것은 나를 도왔습니다. – Craig