Question

J'espère que c'est facile pour vous ...

J'ai essayé de définir la couleur d'arrière-plan d'un QtListWidgetItem, mais je n'ai pas beaucoup de chance - c'est probablement parce que je n'utilise pas correctement QListWidgetItem ... Dans mon code de test, je peux définir le premier plande chaque troisième élément de la liste, mais la définition de l'arrière-plan semble n'avoir aucun effet.Quelqu'un peut-il repérer ma stupide erreur?

J'ai testé ceci avec PyQt4 et PySide sur Qt 4.7

Merci, Dan

import sys
from PySide import QtCore, QtGui

class List(QtGui.QListWidget):
    def __init__(self):
        super(List, self).__init__()
        self.populate()

    def populate(self):
        for i in range(32):
            item = QtGui.QListWidgetItem(self)
            item.setText('%d'%i)

            if i % 3 == 0:
                brush = QtGui.QBrush()
                brush.setColor(QtGui.QColor('red'))
                item.setBackground(brush)

            if i % 3 == 1:
                brush = QtGui.QBrush()
                brush.setColor(QtGui.QColor('blue'))
                item.setForeground(brush)

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)

    listw = List()
    listw.show()

    sys.exit(app.exec_())
Était-ce utile?

La solution

Vous n'avez pas vraiment besoin d'un pinceau.Utilisez simplement un QColor:

item.setBackground(QtGui.QColor('red'))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top