有时我们会限定ComboBox的长度大小,导致下拉列表文本显示不全,这是因为该下拉列表的选项长度大于ComboBox的长度。
解决的方法很简单,通过改变ComboBox的长度让ComboBox的大于选项的文字长度就能完全展示下拉列表选项了。但是由于美观性的问题,我们不想改变ComboBox的长度,但又想完全展示下拉列表的文本。
使用QListView配合样式表可以解决此问题,具体代码如下:
QComboBox* box = new QComboBox(this);
//往该combobox中放入items
box->additems();
//接下来是解决问题的关键
box->setStyleSheet("QComboBox{combobox-popup:1;}");
box->setView(new QListView());
注意:使用该代码会导致下拉列表选项没有Focus状态
(如果有人有解决方案可以评论告诉我,大概方向应该是调整QListView和QComboBox的联动)