Qt QComboBox AbstractItemView::item
有没有办法增加列在QComboBox控件中的项目的高度 我试着按照这里的建议去做,但没有成功Qt QComboBox AbstractItemView::item,qt,qt4,qcombobox,qtstylesheets,Qt,Qt4,Qcombobox,Qtstylesheets,有没有办法增加列在QComboBox控件中的项目的高度 我试着按照这里的建议去做,但没有成功 QComboBox QAbstractItemView::item {margin-top: 3px;} 我也试过了,还是没有结果 QComboBox QAbstractItemView::item {min-height: 20px;} 有可能在样式表级别实现这一点吗?您的样式表似乎是正确的,所以我尝试了。问题似乎类似于: QCompleter在其模型上设置一个自定义的QAbstractItemD
QComboBox QAbstractItemView::item {margin-top: 3px;}
我也试过了,还是没有结果
QComboBox QAbstractItemView::item {min-height: 20px;}
有可能在样式表级别实现这一点吗?您的样式表似乎是正确的,所以我尝试了。问题似乎类似于:
QCompleter
在其模型上设置一个自定义的QAbstractItemDelegate
,不幸的是,此自定义项委托不继承QStyledItemDelegate
,而只是继承QItemDelegate
(然后覆盖paint
方法以显示选定状态)
如果用QStyledItemDelegate
替换默认委托,则样式表应该可以工作:
QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
combo->setItemDelegate(itemDelegate);
重要提示:如果更改模型,则会重置视图的委托,因此在调用setModel()
后需要调用上述方法。另一种方法是:
ui->comboBox->model()->setData(ui->comboBox->model()->index(-row-,0),QSize(-width-,-height-),Qt::sizeintrole)代码>
,其中,-行-
是基于零的项目索引-width-
和-height-
分别代表项目宽度提示和高度提示。QComboBox::item
对我有用
例如,当项目被禁用时,我试图更改项目的颜色,下面的代码实现了这一点
这一个不起作用:
QComboBox QAbstractItemView::item:!enabled {
color:red;
}
相反,我使用了:
QComboBox::item:!enabled {
color:red;
}
似乎这是实现我的要求最不痛苦的方式,谢谢你,它仍然不起作用。我照你说的做了,并尝试使用相同的样式,但它不起作用。保持不变。对于像@darkgaze这样的人,在使用此解决方案后仍有问题,请尝试使用QComboBox::item
作为样式表中的选择器。这个答案和选择器对我很有用。这对我很有帮助-谢谢和+1!引用的文章说,这必须在调用setModel()
后进行-如果为真,这确实值得一提。另一个建议是:如果视图中项目的高度不起作用,请尝试在setItemDelegate
之后添加cpp
中的项目。从QtDesigner添加项时,我遇到了样式表问题。