Первая проблема, с которой вы столкнулись, заключается в том, что вы переопределяете bgImage с помощью None, если вы посмотрите на метод setText , вы увидите, что он возвращает void, поскольку вы передаете None в QBrush, который ничего рисовать. Попробуйте с:
bgImage = QImage()
bgImage = bgImage.setText( "textKey" , "This is some background text." )
palette = QPalette()
palette.setBrush(self.listWidget.backgroundRole(), QBrush( bgImage ))
self.listWidget.setPalette(palette)
Другой подход, который работает, - это расширить список и реализовать событие рисования:
import sys
from PyQt4 import QtCore, QtGui
class MyList(QtGui.QListWidget):
"""A funny list."""
def paintEvent(self, event):
"""Paint the widget."""
# paint the widget
painter = QtGui.QPainter(self.viewport())
# paint here
super(MyList, self).paintEvent(event)
Вы должны убедиться, что вы используете область просмотра для рисования, а не себя, поскольку вы получите QPainter :: begin: рисование виджета может начаться только в результате paintEvent.