Domanda

Spero che uno facile per te ...

Ho cercato di impostare il colore di sfondo di un QtListWidgetItem, ma non ho molta fortuna - questo è probabilmente perché non sto usando correttamente il QlistWidgetItem ... nel mio codice di prova posso impostare il primo piano di ogni terzo L'elemento nell'elenco, ma l'impostazione dello sfondo sembra non avere alcun effetto. Qualcuno può individuare il mio stupido errore?

L'ho provato con Pyqt4 e Pyside su Qt 4.7

Grazie, 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_())
È stato utile?

Soluzione

Non hai davvero bisogno di un pennello. Basta usare un QColor:

item.setBackground(QtGui.QColor('red'))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top