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.parentItem=parentItem self.header=header self.childItems=[]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
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()