Is there a way I could increase the height of the items, which are listed in a QComboBox control ?
I tried following as suggested here in QTDevNet forums but with no luck
QComboBox QAbstractItemView::item {margin-top: 3px;}
I also tried this, still with no result.
QComboBox QAbstractItemView::item {min-height: 20px;}
Is it possible to achieve this at style-sheet level at all ?
A QComboBox provides a means of presenting a list of options to the user in a way that takes up the minimum amount of screen space. A combobox is a selection widget that displays the current item, and can pop up a list of selectable items. A combobox may be editable, allowing the user to modify each item in the list.
Your style sheet seemed correct, so I tried it. It seems the problem is similar to this one on Qt centre:
QCompletersets a customQAbstractItemDelegateon its model and unfortunately this custom item delegate does not inheritQStyledItemDelegatebut simplyQItemDelegate(and then overrides thepaintmethod to show the selected state).
If you replace the default delegate by a QStyledItemDelegate, your style sheet should work:
QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
combo->setItemDelegate(itemDelegate);
Important: If you change the model, then that will reset the view's delegate, so the above method needs to be called after any call to setModel().
An alternative solution would be:
ui->comboBox->model()->setData(ui->comboBox->model()->index(-row-, 0), QSize(-width-, -height-), Qt::SizeHintRole);
, where -row- is zero-based item index; -width- and -height- stand for item width hint and height hint, respectively.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With