2012-06-28 13 views
5

PyQt uygulamasında bir nesne sözlüğü kullanan bir uygulama üzerinde çalışıyorum ve bir robottan gerçek zamanlı olarak gerçek zamanlı değişkenleri çizmenize olanak tanır. Bunu etkinleştirmek için üzerinde çalıştığım şeylerden biri açılır menüdür. Maalesef, birkaç yüz değişkenimiz var, bu yüzden PyQt Combobox'ım ekranın üst kısmından tıklandığında öğelerle birlikte ekranın alt kısmına çıkıyor. Geri kalanını görmek için kaydırma yeteneğiyle, bir kerede görüntülenen öğelerin sayısını sınırlamak istiyorum. Belgelenmiş setMaxVisibleItems yöntemini kullanmayı denedim, ancak bu düşüşü hiç etkilemez. Herhangi bir tavsiye? BuradaPyQt QComboBox açılır menüdeki görünür öğelerin sayısını belirleme

Kodu:

#!/usr/bin/env python 

from PyQt4.QtCore import Qt 
from PyQt4.QtGui import QComboBox, QApplication 

from cli.parc2_od import cli_od 
import sys 

app = QApplication(sys.argv) 

items = cli_od.OD.keys() #Items to populate dropdown. 
combo = QComboBox() 

#The solution: 
combo.setStyleSheet("QComboBox { combobox-popup: 0; }") 
combo.setMaxVisibleItems(10) 




combo.addItems(items) 

combo.resize(300, 30) 
combo.show() 


sys.exit(app.exec_()) 

cevap

7

belgelerine göre: özellik maxVisibleItems Böyle Mac stili veya Gtk olarak `QStyle::SH_ComboBox_Popup için de geçerlidir döndüren tarzlarda düzenlenemeyen comboboxes için göz ardı edilir

+ Stil.

Ve eğer bir stil sayfası ile o SH_ComboBox_Popup stil ipucu geçersiz kılabilirsiniz:

combo.setStyleSheet("QComboBox { combobox-popup: 0; }");