2012-06-28 403 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; }"); 
相关问题