10

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

我尝试按照QTDevNet 论坛中的建议进行操作,但没有运气

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

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

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

是否有可能在样式表级别实现这一点?

4

3 回答 3

33

你的样式表似乎是正确的,所以我试了一下。似乎问题与Qt center 上的问题类似:

QCompleter在其模型上设置自定义QAbstractItemDelegate,不幸的是,此自定义项委托不会继承QStyledItemDelegate,而只是简单地继承QItemDelegate(然后覆盖该paint方法以显示选定状态)。

如果您用 a 替换默认委托QStyledItemDelegate,您的样式表应该可以工作:

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

重要提示:如果您更改模型,那么这将重置视图的委托,因此需要在任何调用setModel().

于 2012-11-09T18:14:12.303 回答
1

另一种解决方案是:

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

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

于 2017-02-23T03:03:44.743 回答
0

QComboBox::item为我工作

例如,当它被禁用时,我试图改变它的颜色,下面的代码就可以了。

这个没用:

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

相反,我使用了:

QComboBox::item:!enabled {
    color:red;
}
于 2018-05-25T16:35:02.510 回答