pyqt4:QListWidget:如何动态设置不同的文本和背景颜色
我是PyQt的新手。我想设计一个列表,它将显示具有不同背景和文本颜色的不同项目。我可以将项目添加到我的列表中,但无法配置它们以设置不同的颜色。pyqt4:QListWidget:如何动态设置不同的文本和背景颜色
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(786, 552)
self.mylist = QtGui.QListWidget(self.centralwidget)
self.mylist.setObjectName(_fromUtf8("mylist"))
self.mylist.addItem("item1")
self.mylist.addItem("item2")
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
我将上面的代码添加到mylist中名为item1和item2的项目。我想将背景颜色和文字颜色设置为item1蓝色和白色,并将item2设置为红色和黑色。我怎么能这样做?
的QListWidgetItem
类有setBackground()
:
QListWidgetItem.setBackground(your_color)
你的情况:
self.mylist.item(0).setBackground(QtCore.Qt.blue)
# self.mylist.item(0).setBackground(QtGui.QColor("blue"))
# self.mylist.item(0).setBackground(QtGui.QColor(0, 0, 255))
self.mylist.item(1).setBackground(QtCore.Qt.white)
# self.mylist.item(1).setBackground(QtGui.QColor("white"))
# self.mylist.item(1).setBackground(QtGui.QColor(255, 255, 255))
感谢的很多。它正在工作。请告诉我如何设置文字(字体)颜色 –
字体颜色不变 –
setTextColor正在工作。感谢您的帮助。 –
是的,先生,它的工作 –