【发布时间】:2017-01-11 11:11:01
【问题描述】:
我正在开发一个包含组合框的软件,里面有很多项目,问题是当我点击它时,列表太大,我无法通过滚动查看所有项目。
使用了 cleanlooks 样式(这就是组合框尺寸过大的原因)但我无法更改它,所以我正在寻找设置最大尺寸的解决方案。
我在网上和文档中都没有找到任何关于此的内容。
我尝试使用尺寸策略但不起作用。我还尝试获取组合框使用的 QLineEdit,并在其上设置 QSize,最后通过在组合框和 QLineEdit 上设置样式表,但没有任何工作正常。
我对 QSize 和样式表的尝试:
sz = QSize(20, 20)
combo.view().setGridSize(sz)
combo.view().setStyleSheet("""QListView { max-height: 50px; background-color: yellow; } """)
combo.setStyleSheet("""QComboBox { max-height: 30px; background-color: pink; } """)
编辑:在@Vladimir Bershov 发表评论后,我尝试使用以下命令正确设置大小:setMaxVisibleItems() 但如文档中所述(“注意:对于 QStyle 返回 true 的样式中的不可编辑组合框,此属性将被忽略::SH_ComboBox_Popup") 属性被忽略。
所以我寻找修改 QStyle Hint 以取消设置 SH_ComboBox_Popup 但正如 post 中所解释的那样,这是不可能的。
如果您有任何建议,我正在倾听。
谢谢。
【问题讨论】:
-
我试过这个,但它被忽略了,我在文档中看到了这个:“注意:对于为 QStyle::SH_ComboBox_Popup 返回 true 的样式(例如 Mac 样式)中的不可编辑组合框,此属性将被忽略或 Gtk+ 风格。”这可以解释为什么。我之前尝试将组合框设置为可编辑,它可以工作,所以我正在寻找这种方式
-
@pipou。
QProxyStyle类现在在 PyQt5 中可用。我尝试使用 Cleanlooks 样式,并覆盖SH_ComboBox_Popup作品的样式提示。在 PyQt4 中没有办法解决这个问题。 -
@ekhumoro 感谢您提供的信息,即使没有几乎解释清楚的解决方案,我也会将其标记为已解决。
标签: python-2.7 qt pyqt4