如何从PyQt4中的QVariant中获取python对象?

2024-09-27 04:21:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建QAbstractItemModel的子类,以在QTreeView中显示。

我的index()parent()函数使用QAbstractItemModel继承函数createIndex创建QModelIndex,并为它提供所需的rowcolumndata。在这里,出于测试目的,数据是一个Python字符串。

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对象?


Tags: 函数selfdataindexreturnifdefbar

热门问题