按照qt帮助里的例子使用qss对QComboBox样式修改时,发现其Popup窗口的item的样式根本没反应。
网上找了些方案。
1.
qss不使用QComboBox QAbstractItemView::item,
而是直接使用QComboBox::item,
无效。
2. 改变其默认的delegate:
在代码里添加
QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
combo->setItemDelegate(itemDelegate);
原因:
QCompleter sets a custom QAbstractItemDelegate on it's model and unfortunately this custom item delegate does not inherit QStyledItemDelegate but simply QItemDelegate (and then overrides the paintmethod to show the selected state).
参考:https://stackoverflow.com/questions/13308341/qcombobox-abstractitemviewitem?rq=1
但还是没有效果
3.在代码里添加
combobox->setView(new QListView());
其作用了,原因很可能还是delegate的问题。
给出使用的简单的qss供参考
QComboBox QAbstractItemView::item
{
height: 40px;
min-height:40px;
color:rgb(110,110,110);
}