QCombobox设置下拉框的宽度(设置QComboBox的下拉框Item高度|下拉框下拉列表的高度)

这几天写一个项目,里面用到qcombobox组件,其中下拉框含有129个子项,所以在点击的时候,一个下拉框就将整个电脑屏幕给占满了,很不好看并且在使用中会造成很大的苦恼。其实我就是想设置一个下拉框最大的高度,而且,剩下还未显示的子项就用滚动条来代替。

网上搜了很长时间,很多都是人云亦云,不能解决问题,所以,今天写下这个博客,一来,留给自己存档,而来,留给后来的同学,希望不要走我这条老路。

下拉框高度主要分两种。

一、下拉框子项的高度:

[cpp] view plain copy
  1. setStyleSheet("QComboBox { min-height: 40px; min-width: 60px; }"  
  2.         "QComboBox QAbstractItemView::item { min-height: 40px; min-width: 60px; }");  
  3. QComboBox *combo = new QComboBox(this);  
  4. combo->setView(new QListView());  
二、下拉框下拉列表的高度:

我们一般会用这条语句

ui->m_qcombxType->setMaxVisibleItems(10);
设置它下拉显示最多的子项,也就是下拉框的高度。但是在用的时候发现没反应,使用不了。在这条语句前面再加上一句
 ui->m_qcombxType->setEditable(true);
设置qcombobox为为可编辑属性。就可以了。其中 m_qcombxType为下拉框的名字。

=================================================================

参考资料

[1]设置 QComboBox的下拉框Item高度

http://blog.csdn.net/abeldeng/article/details/24769157

[2]Qt - 自定义QComboBox下拉框的item高度

http://blog.csdn.net/lys211/article/details/43956979

[3]QComboBox列表项高度设置

http://blog.csdn.net/xiaogangwang2012/article/details/51192419

你可能感兴趣的:(Qt)