Bonjour, j'essaye de changer les couleurs de certains QTreeWidgetItem sans modifier le formatage du texte par defaut sans succés.
voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class test(QStyledItemDelegate):
		def __init__(self, parent=None, *args):
			QItemDelegate.__init__(self, parent, *args)
 
		def lin(self,col1,col2):
			o = QLinearGradient(QPointF(100, 100), QPointF(200, 200))
			o.setColorAt(0,col1); 
			o.setColorAt(1, col2);  
			return QBrush(o)
 
		def paint(self, painter, option, index):
 
			painter.save()
 
			# set background color
			if index.sibling(index.row(),0).data(Qt.DisplayRole).toString() == "Formule":
				if option.state & QStyle.State_Selected:
					painter.setBrush( self.lin(QColor(0,0,200,100),QColor("#567dbc")) ) # Formule selected background color
				else:
					painter.setBrush(QBrush(QColor(0,100,100,150))) # Formule Normal background color
				painter.setPen(QPen(QBrush(QColor("#d9d9d9")),2.0)) # Formule Border color
				painter.drawRect(option.rect)
			else:
				if option.state & QStyle.State_Selected:
					painter.setBrush( self.lin(QColor(0,100,200,100),QColor("#567dbc")) ) #selected background color
				else:
					painter.setBrush(QBrush(Qt.white)) #Normal background color
				painter.setPen(QPen(QBrush(QColor("#d9d9d9")),2.0)) # Border color
				painter.drawRect(option.rect)
			# set text color
			painter.setPen(QPen(Qt.black))
			value = index.data(Qt.DisplayRole)
			if value.isValid():
				text = value.toString()
				painter.drawText(option.rect,Qt.AlignCenter, text)
 
			painter.restore()
avec ce code, le texte est plus petit, la taille ne se reduit pas automatiquement si le texte est trop grand et je ne peu pas choisir l'alignement du texte a la creation de l'item
si quelqu'un a une solution, merci d'avance