下面的代码创建了一个简单的QComboBox。但是,它没有使用“传统”.addItem('myItemName')方法,而是先创建QStandardItem,然后通过QComboBox的.model().appendRow()添加它。由于现在我可以单独访问每个QStandardItem,我想知道是否有一种方法可以将CSS分别分配给每个QStandardItem(每个QStandardItem)。目标是定制ComboBox下拉菜单中显示的每个项目。到目前为止,我只能在全球范围内为整个ComboBox分配一个CSS样式。
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Combo(QtGui.QComboBox):
def __init__(self, *args, **kwargs):
super(Combo, self).__init__()
for each in ['Item_1','Item_2','Item_3','Item_4','Item_5']:
item=QtGui.QStandardItem(each)
self.model().appendRow(item)
tree=Combo()
sys.exit(app.exec_())发布于 2014-09-09 20:06:54
看起来这个类没有setStyleSheet方法,但是您可以使用setBackground、setForeground和setTextAlignment方法。使用QBrush,您可以定制元素。当然,它没有styleSheets那么强大,但总比没有强。
http://pyqt.sourceforge.net/Docs/PyQt4/qstandarditem.html
https://stackoverflow.com/questions/25752394
复制相似问题