2012-11-09 17 views
8

QComboBox denetiminde listelenen öğelerin yüksekliğini artırmanın bir yolu var mı? Burada in QTDevNet forums önerildiği gibi QComboBox AbstractItemView :: öğe

Aşağıdaki çalıştı ama hayır şans

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

ile ben de hala hiçbir sonuç, bu denedik.

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

Bunu stil sayfası düzeyinde gerçekleştirmek mümkün müdür?

cevap

26

Stil sayfanız doğru görünüyordu, ben de denedim. Sorunun this one on Qt centre benzer görünüyor: o model ve ne yazık ki bu özel madde temsilci QStyledItemDelegate ama sadece QItemDelegate miras değil (ve sonra seçilen eyaleti göstermeye paintmethod geçersiz kılar) üzerinde özel QAbstractItemDelegate ayarlar QCompleter

. Eğer bir QStyledItemDelegate varsayılan temsilci değiştirin

, stilin levha çalışması gerekir:

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

bu benim gereksinimi yerine getirmenin en az acı verici yolu gibi görünüyor, teşekkürler – warunanc

+0

Benim için hala işe yaramıyor. Ne dediğini yaptım ve aynı stili kullanmayı denedim ve işe yaramıyor. Aynı şekilde. – darkgaze

+0

, @darkgaze gibi bir şey için bu çözümü kullandıktan sonra hala sorun yaşıyorsanız, stil sayfasındaki seçiciniz olarak 'QComboBox :: item' kullanmayı deneyin. Bu seçici ile birlikte bu cevap benim için çalıştı. – MildWolfie

1

alternatif solution olacaktır:

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

, -row- sıfır olduğu temel öğe endeksi; -width- ve -height- sırasıyla öğe genişliği ipucu ve yükseklik ipucu için duruyor.