2012-11-09 5 views
8

Gibt es eine Möglichkeit, die Höhe der Elemente, die in einem QComboBox-Steuerelement aufgeführt sind, zu erhöhen?QComboBox AbstractItemView :: Element

Ich habe versucht, wie hier in QTDevNet forums vorgeschlagen folgende, aber ohne Glück

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

Ich habe auch versucht diese, noch ohne Ergebnis.

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

Ist es überhaupt möglich, dies auf Stilvorlagenebene zu erreichen?

Antwort

26

Ihr Stylesheet schien korrekt zu sein, also habe ich es versucht. Es scheint, das Problem zu this one on Qt centre ähnelt:

QCompleter eine benutzerdefinierte QAbstractItemDelegate setzt auf das Modell ist und leider dieser Delegat benutzerdefinierte Artikel nicht QStyledItemDelegate sondern einfach QItemDelegate (und dann überschreibt die paintmethod zeigen den ausgewählten Zustand) erben.

Wenn Sie den Standard Delegierten durch eine QStyledItemDelegate ersetzen, sollte Ihr Stylesheet arbeiten:

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

scheint dies der am wenigsten schmerzhafte Weg, um meine Anforderung zu implementieren, danke – warunanc

+0

10 Für mich funktioniert es immer noch nicht. Ich habe getan, was Sie sagen, und versucht, den gleichen Stil zu verwenden, und es funktioniert nicht. Bleibt auf die gleiche Weise. – darkgaze

+0

für jeden wie @darkgaze immer noch ein Problem nach der Verwendung dieser Lösung, versuchen Sie mit dem 'QComboBox :: item' als Selektor innerhalb des Stylesheet. Diese Antwort zusammen mit diesem Selektor hat für mich gearbeitet. – MildWolfie

1

Eine alternative solution wäre:

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

, wo -row- ist null- Artikelindex; -width- und -height- stehen für Artikel Breite Hinweis und Höhe Hinweis.

Verwandte Themen