PyQt QComboBox设置下拉菜单中可见项的数量

10
我正在使用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个回答

14
根据文档:
引用: 在返回`QStyle :: SH_ComboBox_Popup为true的样式中,对于非可编辑组合框,属性maxVisibleItems将被忽略,例如Mac风格或Gtk +风格。
您可以使用样式表覆盖SH_ComboBox_Popup样式提示。
combo.setStyleSheet("QComboBox { combobox-popup: 0; }");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接