qt将最大高度设置为下拉组合框(样式cleanlooks)

时间:2017-01-11 11:11:01

标签: python-2.7 qt pyqt4

我正在使用一个包含内置很多项目的组合框的软件,问题是当我点击它时列表太大而我无法通过滚动查看所有项目它

使用样式清洁(这就是为什么组合框的尺寸太大)但我无法改变它,所以我正在寻找一个解决方案来设置最大尺寸。

我在网上找不到任何相关内容,也没有在文档中找到。

我尝试使用尺寸政策但不起作用。我还试图获得组合框使用的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 :: SH_ComboBox_Popup"),该属性将被忽略。

所以我寻找修改QStyle Hint来取消设置SH_ComboBox_Popup,但正如post所解释的那样,这是不可能的。

如果您有任何建议,我会倾听。

感谢。

2 个答案:

答案 0 :(得分:1)

如评论中所解释的那样,PyQt4中没有可用的解决方案

答案 1 :(得分:0)

当我试图最小化Qt / C ++中QComboBox下拉菜单的高度时,此行对我有用。

ComboBox->setStyleSheet("combobox-popup: 0;");