2016-12-12 7 views

Antwort

3

Versuchen Sie, einen Teil eines QListWidgetItem-Texts oder den gesamten Text als einzelnes QListWidgetItem zu färben?

Wenn Sie das gesamte QListWidgetItem-Objekt farbig darstellen möchten, verwenden Sie item.setTextColor(). Dieses Beispiel Farben des Text des zweiten Artikels rot:

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

Das macht die:

enter image description here

oder nur einen Teil des Textes in einem QListWidgetItem QLabel verwendet mit addWidget() und 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() 

die in diesem

012 gibt

+0

wenn ich die Ablenkung von rechts nach links wie ändern möchte! –

+0

Die Richtung des Textes umkehren? so dass es wie in meinem Beispiel "1 tsettset" heißt? –

+0

Haben Sie die Antwort oder Vorschläge in den Kommentaren für http://stackoverflow.com/questions/26378900/set-text-direction-for-qlabel ausprobiert? –

Verwandte Themen