如何为QStandardItem设置样式表
下面的代码创建了一个简单的 QComboBox
(下拉框)。不过,它不是用传统的 .addItem('myItemName')
方法来添加项目,而是先创建了 QStandardItem
,然后通过 QComboBox
的 .model().appendRow()
方法来添加。这样一来,我就可以单独访问每一个 QStandardItem
了。我在想,是否有办法给每一个 QStandardItem
单独设置 CSS 样式?我的目标是自定义下拉菜单中显示的每个项目。目前为止,我只能给整个下拉框统一设置一个 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_())
1 个回答
3
看起来这个类没有 setStyleSheet
这个方法,但你可以使用 setBackground
、setForeground
和 setTextAlignment
这些方法。通过 QBrush,你可以自定义一些元素。当然,这些方法没有 styleSheets 那么强大,但总比没有好。