2012-06-28 90 views
5

我正在PyQt中使用對象字典並允許您實時繪製從機器人流出的變量的應用程序。我正在努力實現這一目標的一個方面是下拉式菜單。不幸的是,我們有幾百個變量,所以當點擊時,我的PyQt Combobox從屏幕頂部彈出到底部。我想限制一次顯示的項目數量爲20,並可以滾動查看其餘項目。我試過使用記錄的setMaxVisibleItems方法,但它根本不影響下拉。任何建議?PyQt QComboBox設置下拉列表中可見項目的數量

代碼在這裏:

#!/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_()) 

回答

7

根據文檔:

酒店maxVisibleItems爲不可編輯的組合框的樣式,如Mac風格或GTK的返回`QStyle::SH_ComboBox_Popup真忽略+樣式。

而且可以覆蓋一個樣式表SH_ComboBox_Popup風格提示:

combo.setStyleSheet("QComboBox { combobox-popup: 0; }"); 
相關問題