【问题标题】:PyQt QComboBox setting number of visible items in dropdownPyQt QComboBox 设置下拉列表中可见项目的数量
【发布时间】:2012-06-30 10:12:13
【问题描述】:

我正在 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_())

【问题讨论】:

    标签: pyqt pyqt4 qcombobox


    【解决方案1】:

    根据文档:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 1970-01-01
      • 2015-07-08
      • 2015-08-18
      • 1970-01-01
      • 2014-05-12
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多