QComboBox AbstractItemView:: item

y a-t-il un moyen d'augmenter la hauteur des articles, qui sont énumérés dans un contrôle QComboBox ?

j'ai essayé de suivre comme suggéré ici dans les forums QTDevNet mais avec pas de chance

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

j'ai aussi essayé ce, toujours sans résultat.

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

est-il possible d'atteindre cet objectif au niveau de la feuille de style ?

8
demandé sur warunanc 2012-11-09 16:46:25

3 réponses

votre feuille de style semblait correcte, donc je l'ai essayé. Il semble que le problème soit similaire à celui-ci sur Qt centre:

QCompleter configure un Qabstractemdelegate personnalisé sur son modèle et malheureusement ce délégué personnalisé n'hérite pas QStyledItemDelegate mais simplement QItemDelegate (et remplace alors la méthode paintmethod pour montrer l'état sélectionné).

si vous remplacez le délégué par défaut par un QStyledItemDelegate, votre feuille de style devrait fonctionner:

QStyledItemDelegate* itemDelegate = new QStyledItemDelegate();
combo->setItemDelegate(itemDelegate);
28
répondu Leiaz 2012-11-09 18:21:27

une alternative solution:

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

, où -row- est de base zéro de l'élément d'index; -width- et -height- représentent respectivement l'indication de la largeur de l'article et l'indication de la hauteur.

1
répondu guan boshen 2017-02-23 03:03:44

QComboBox::item a fonctionné pour moi

Donc par exemple, j'ai essayé de changer la couleur de l'élément lorsqu'il est désactivé, et le code suivant fait le tour.

celui-ci n'a pas fonctionné:

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

au lieu de cela j'ai utilisé:

QComboBox::item:!enabled {
    color:red;
}
0
répondu laurapons 2018-05-25 16:35:02