Правильное использование setBackground - PullRequest
4 голосов
/ 05 декабря 2011

Надеюсь, это легко для вас ...

Я пытался установить цвет фона QtListWidgetItem, но мне не очень повезло - возможно, потому, что я не используюQListWidgetItem правильно ... В моем тестовом коде я могу установить передний план каждого третьего элемента в списке, но установка фона, кажется, не имеет никакого эффекта.Кто-нибудь может заметить мою глупую ошибку?

Я протестировал это с PyQt4 и PySide на Qt 4.7

Спасибо, Дэн

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_())

1 Ответ

7 голосов
/ 05 декабря 2011

Тебе не нужна кисть.Просто используйте QColor:

item.setBackground(QtGui.QColor('red'))
...