QComboBox AbstractItemView :: item

时间:2012-11-09 12:46:26

标签: qt qt4 qcombobox qtstylesheets

有没有办法可以增加QComboBox控件中列出的项目的高度?

我尝试按照此处in QTDevNet forums的建议进行操作,但没有运气

QComboBox QAbstractItemView::item {margin-top: 3px;}

我也试过这个,仍然没有结果。

QComboBox QAbstractItemView::item {min-height: 20px;}

是否有可能在样式表层面实现这一目标?

3 个答案:

答案 0 :(得分:29)

你的样式表似乎是正确的,所以我试了一下。似乎问题类似于this one on Qt centre

  

QCompleter在其模型上设置自定义QAbstractItemDelegate,遗憾的是,此自定义项委托不继承QStyledItemDelegate,而只是继承QItemDelegate(然后覆盖paintmethod以显示所选状态)。

如果您使用QStyledItemDelegate替换默认委托,则样式表应该有效:

QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
combo->setItemDelegate(itemDelegate);

答案 1 :(得分:1)

替代solution将是:

ui->comboBox->model()->setData(ui->comboBox->model()->index(-row-, 0), QSize(-width-, -height-), Qt::SizeHintRole);

,其中-row-是从零开始的项目索引; -width--height-分别代表项目宽度提示和高度提示。

答案 2 :(得分:0)

QComboBox::item为我工作

因此,例如,我试图在项目被禁用时更改项目的颜色,以下代码可以解决问题。

这个不起作用:

QComboBox QAbstractItemView::item:!enabled {
    color:red;
}

相反,我使用了:

QComboBox::item:!enabled {
    color:red;
}