正确使用setBackground

时间:2011-12-05 17:05:47

标签: python pyqt pyside

希望对你来说很简单......

我一直在尝试设置QtListWidgetItem的背景颜色,但我没有太多运气 - 这可能是因为我没有正确使用QListWidgetItem ...在我的测试代码中我可以设置前景列表中的每三个项目,但设置背景似乎没有任何效果。谁能发现我的愚蠢错误?

我在Qt 4.7上用PyQt4和PySide测试了这个。

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

1 个答案:

答案 0 :(得分:6)

你真的不需要画笔。只需使用QColor

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