pyqt4:QListWidget:如何为不同的项目动态设置不同的文本和背景颜色
pyqt4: QListWidget: How to set different text and background colors to different items dynamically
我是 PyQt 新手。我想设计一个列表,该列表将显示具有不同背景和文本颜色的不同项目。我可以将项目添加到我的列表中,但无法将它们配置为设置不同的颜色。
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
class 有 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))
如果您想更改字体颜色,请使用名为 setForeground
的 属性
self.mylist.item(0).setForeground(QtCore.Qt.blue)
这会将项目 0 的字体颜色更改为蓝色
我是 PyQt 新手。我想设计一个列表,该列表将显示具有不同背景和文本颜色的不同项目。我可以将项目添加到我的列表中,但无法将它们配置为设置不同的颜色。
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
class 有 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))
如果您想更改字体颜色,请使用名为 setForeground
self.mylist.item(0).setForeground(QtCore.Qt.blue)
这会将项目 0 的字体颜色更改为蓝色