2012-11-09 1 views
8

QComboBox 컨트롤에 나열된 항목의 높이를 늘릴 수있는 방법이 있습니까? 여기 in QTDevNet forums 제안 QComboBox AbstractItemView :: item

나는 다음과 같은 시도했지만 운이

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

와 나는 또한 여전히 결과,이 시도.

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

스타일 시트 수준에서 이것을 달성 할 수 있습니까?

답변

26

귀하의 스타일 시트가 정확하다고 보았습니다. 문제가 this one on Qt centre과 비슷한 것 같다 :이 모델의 불행하게도이 사용자 정의 항목 대리인이 QStyledItemDelegate 단순히 QItemDelegate을 상속하지 않습니다 (다음 선택한 상태를 표시하는 paintmethod을 무시)에서 사용자 정의 QAbstractItemDelegate을 설정 QCompleter

합니다. 당신이 QStyledItemDelegate하여 기본 위임을 교체 할 경우

, 스타일 시트 작동합니다 :

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

이것은 내 요구 사항을 구현하는 가장 고통스러운 방법 인 것 같습니다. – warunanc

+0

제게는 여전히 작동하지 않습니다. 나는 네가 한 말을했고, 같은 스타일을 사용하려고 노력했지만, 효과가 없다. 같은 방식으로 계속된다. – darkgaze

+0

@darkgaze와 같은 사람은이 솔루션을 사용한 후에도 여전히 문제가 발생하면 스타일 시트 내에서 'QComboBox :: item'을 선택자로 사용해보십시오. 이 선택자와 함께 대답은 나를 위해 일했습니다. – MildWolfie

1

대안 solution은 다음과 같습니다

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

, -row-은 제로입니다 기반 항목 색인; -width--height-은 항목 너비 힌트 및 높이 힌트를 나타냅니다.