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 ?
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);
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.
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;
}