PyQt QComboBox设置下拉列表中可见项目的数量

时间:2012-06-28 20:23:05

标签: pyqt pyqt4 qcombobox

我正在使用PyQt中的一个应用程序,它接受一个对象字典,并允许您实时绘制从机器人流出的变量。我正在努力实现这一点的一个方面是下拉菜单。不幸的是,我们有几百个变量,所以当我点击时,我的PyQt Combobox会从屏幕顶部弹出到底部。我想将一次显示的项目数限制为20,并能够滚动查看其余项目。我已经尝试使用记录的setMaxVisibleItems方法,但它根本不会影响下拉。有什么建议吗?

代码在这里:

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

1 个答案:

答案 0 :(得分:7)

根据文件:

  

对于`QStyle::SH_ComboBox_Popup为{{3}}返回true的样式中的不可编辑组合框,将忽略属性maxVisibleItems,例如Mac样式或Gtk +样式。

您可以使用样式表覆盖SH_ComboBox_Popup样式提示:

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