Colors qtreeview根着色

Colors qtreeview根着色,colors,qtreeview,Colors,Qtreeview,我有一个带彩色背景的QTreeView,但我还需要根颜色。。 我不能这样做。 有人能帮我吗? 这是密码 谢谢 从PyQt4导入QtGui、QtCore 横向标题=(“姓氏”、“给定名称”) 类人\类(对象): def初始化(self、sname、fname、isMale): self.sname=sname self.fname=fname self.isMale=isMale 类TreeItem(对象): definit(自我、个人、标题、父项): self.person=人 self.par

我有一个带彩色背景的QTreeView,但我还需要根颜色。。 我不能这样做。 有人能帮我吗? 这是密码

谢谢

从PyQt4导入QtGui、QtCore

横向标题=(“姓氏”、“给定名称”)

类人\类(对象): def初始化(self、sname、fname、isMale): self.sname=sname self.fname=fname self.isMale=isMale

类TreeItem(对象): definit(自我、个人、标题、父项): self.person=人 self.parentItem=parentItem self.header=header self.childItems=[]

def appendChild(self, item):
    self.childItems.append(item)

def child(self, row):
    return self.childItems[row]

def childCount(self):
    return len(self.childItems)

def columnCount(self):
    return 2

def data(self, column):
    if self.person == None:
        if column == 0:
            return QtCore.QVariant(self.header)
        if column == 1:
            return QtCore.QVariant("")                
    else:
        if column == 0:
            return QtCore.QVariant(self.person.sname)
        if column == 1:
            return QtCore.QVariant(self.person.fname)
    return QtCore.QVariant()

def parent(self):
    return self.parentItem

def row(self):
    if self.parentItem:
        return self.parentItem.childItems.index(self)
    return 0
类树模型(QtCore.qabstractemodel): definit(自身,父项=无): 超级(树模型,自我)。init(父级) self.people=[] 对于fname、sname、isMale in((“约翰”、“布朗”,1), (“弗雷德”,“布洛格斯”,1),(“苏”,“史密斯”,0)): person=person\u类(sname、fname、isMale) self.people.append(person)

如果name==“main”:

    self.rootItem = TreeItem(None, "ALL", None)
    self.parents = {0 : self.rootItem}
    self.setupModelData()

def columnCount(self, parent=None):
    if parent and parent.isValid():
        return parent.internalPointer().columnCount()
    else:
        return len(HORIZONTAL_HEADERS)

def data(self, index, role):
    if not index.isValid():
        return QtCore.QVariant()

    item = index.internalPointer()
    if role == QtCore.Qt.DisplayRole:
        return item.data(index.column())
    if role == QtCore.Qt.UserRole:
        if item:
            return item.person
    if role == QtCore.Qt.BackgroundRole :
        return QtGui.QColor('pink') 


    return QtCore.QVariant()

#def headerData(self, column, orientation, role):
    #if (orientation == QtCore.Qt.Horizontal and
    #role == QtCore.Qt.DisplayRole):
        #try:
            #return QtCore.QVariant(HORIZONTAL_HEADERS[column])
        #except IndexError:
            #pass

    #return QtCore.QVariant()

def index(self, row, column, parent):
    if not self.hasIndex(row, column, parent):
        return QtCore.QModelIndex()

    if not parent.isValid():
        parentItem = self.rootItem
    else:
        parentItem = parent.internalPointer()

    childItem = parentItem.child(row)
    if childItem:
        return self.createIndex(row, column, childItem)
    else:
        return QtCore.QModelIndex()

def parent(self, index):
    if not index.isValid():
        return QtCore.QModelIndex()

    childItem = index.internalPointer()
    if not childItem:
        return QtCore.QModelIndex()

    parentItem = childItem.parent()

    if parentItem == self.rootItem:
        return QtCore.QModelIndex()

    return self.createIndex(parentItem.row(), 0, parentItem)

def rowCount(self, parent=QtCore.QModelIndex()):
    if parent.column() > 0:
        return 0
    if not parent.isValid():
        p_Item = self.rootItem
    else:
        p_Item = parent.internalPointer()
    return p_Item.childCount()

def setupModelData(self):
    for person in self.people:
        if person.isMale:
            sex = "MALES"
        else:
            sex = "FEMALES"

        if not self.parents.has_key(sex):                
            newparent = TreeItem(None, sex, self.rootItem)
            self.rootItem.appendChild(newparent)

            self.parents[sex] = newparent

        parentItem = self.parents[sex]
        newItem = TreeItem(person, "", parentItem)
        parentItem.appendChild(newItem)
app = QtGui.QApplication([])
model = treeModel()
dialog = QtGui.QDialog()
dialog.setMinimumSize(300,150)
layout = QtGui.QVBoxLayout(dialog)

tv = QtGui.QTreeView(dialog)
tv.setModel(model)
layout.addWidget(tv)

dialog.exec_()
app.closeAllWindows()