Pyqt 着色 QlistWidget 中的部分文本

Pyqt coloring part of text in QlistWidget

我想为 QListWidget 中的部分文本着色

我尝试包含标签字体 int 文本,但这不起作用。

您是要为 QListWidgetItem 文本的一部分还是单个 QListWidgetItem 的整个文本着色?

如果您想为整个单个 QListWidgetItem 着色,请使用 item.setTextColor()。此示例将第二项的文本着色为红色:

from PyQt4 import QtGui, QtCore
import sys

class Main(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QMainWindow.__init__(self,parent)
        self.initUI()

    def initUI(self):
        mylist = QtGui.QListWidget(self)
        mylist.setMinimumSize(QtCore.QSize(800, 800))
        for i in range(5):
            item = mylist.addItem('Item %s' % (i + 1)) 
        items = mylist.findItems("Item 2",QtCore.Qt.MatchExactly)
        if len(items) > 0:
            for item in items:
                item.setTextColor (QtGui.QColor("red"))

def main():
    app = QtGui.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

这给出了这个:

或者只是 QListWidgetItem 中的部分文本将 QLabel 与 addWidget() 和 HTML:

结合使用
from PyQt4 import QtGui, QtCore
import sys

class Main(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QMainWindow.__init__(self,parent)
        self.initUI()

    def initUI(self):
        mylist = QtGui.QListWidget(self)
        mylist.setMinimumSize(QtCore.QSize(800, 800))
        for i in range(5):
            widgitItem = QtGui.QListWidgetItem() 
            widget = QtGui.QWidget()
            widgetText =  QtGui.QLabel('test<span style="color:#ff0000;">test %s</span>' % (i + 1))
            widgetLayout = QtGui.QHBoxLayout()
            widgetLayout.addWidget(widgetText)
            widgetLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
            widget.setLayout(widgetLayout)      
            mylist.addItem(widgitItem)
            widgitItem.setSizeHint(widget.sizeHint()) 
            mylist.setItemWidget(widgitItem, widget)


def main():
    app = QtGui.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

这给了这个