我正在 PyQt 中开发一个应用程序,它采用对象字典并允许您实时绘制来自机器人的变量流。我正在努力实现这一点的事情之一是下拉菜单。不幸的是,我们有几百个变量,因此当单击时,我的 PyQt 组合框会从屏幕顶部弹出到底部,其中包含项目。我想将一次显示的项目数量限制为 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_())
根据文档:
该物业maxVisibleItems
对于返回 true 的样式中的不可编辑组合框,将被忽略`QStyle::SH_ComboBox_Popup http://qt-project.org/doc/qt-4.8/qstyle.html#StyleHint-enum例如 Mac 风格或 Gtk+ 风格。
你可以覆盖它SH_ComboBox_Popup
带有样式表的样式提示:
combo.setStyleSheet("QComboBox { combobox-popup: 0; }");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)