如果QComboBox下拉框文字重叠,在设置好样式之后,在后面加 setView(new QListView())即可;
m_comboRate = new QComboBox();
m_comboRate->setFixedSize(700,74);
m_comboRate->setStyleSheet(QString(“QComboBox{border: 1px solid #949494;border-radius:5px;”
“font-family:MicrosoftYaHei;font-size:30px;color:#333333;}”
“QComboBox QAbstractItemView{border: 0px;outline:0px;”
“selection-background-color: #26409b;height:100px;font:30px;}”
“QComboBox::drop-down {width: 60px;border-left-width: 0px;”
“border-left-color: gray;border-left-style: solid;”
“image: url(%1);}”
“QComboBox::down-arrow:hover{image:url(%2);}”).arg(SKINPATH+"/pull.png").arg(
SKINPATH+"/pull_checked.png"));
m_comboRate->setView(new QListView());
border: 1px solid gray; /* 边框 */
border-radius: 3px; /* 圆角 */
padding: 1px 18px 1px 3px; /* 字体填衬 */
color: #000;
font: normal normal 15px...
在
Qt
项
目中很少会用
Qt
原生的控件风格,有时候需要自己去设置控件的有的属性和风格,但是当设置
QComboBox
控件时有时候会遇到
下拉
框中的item不起作用,主要原因是没有设置QList
View
,具体如下:
1.首先给ComboBox设置
view
:
ui->comboBox->
set
View
(new QList
View
());
注意:这一句需要放在在所在界面的构造函数里,否则不生效。
2.给comboBox设置样式,可以在creater里设置,也可以调用接口 设置:
Qt
提供的
QComboBox
下拉列表
组合控件是非常好用的,既可以当成QLineEdit做编辑用也提供了一个
下拉列表
供用户选择。当然也有其不好的地方,就是使用Qss样式的时候只能对其表层进行修改
下拉列表
不生效;如果想要在Qss对
下拉列表
修改还得重新设置它的QList
View
;如果你想要设置item的高度结果有可能还会导致item的
重叠
,因为可能你设置的item高度后他内存并没有重新计算。
下拉列表
样式不生效
QComboBox
{
padding: 0 5px;
摘自:https://www.jianshu.com/p/670de4f63689
QList
View
可以用来以列表的形式展示数据,在
Qt
中使用model/
View
结构来管理数据与视图的关系,model负责数据的存取,数据的交互通过delegate来实现。
添加数据模型
QT
提供了一些现成的models用于处理数据
项
:
QStringListModel 用于存储简单的QString列表。
HTML中的
下拉列表
:Html代码<select><optionvalue="1">Volvo</option><optionvalue="2">Saab</option><optionvalue="3">Opel</option><optionvalue="4">Audi</option>...
当给
QComboBox
设置行交替使用不同颜色后,两个相邻的item文字有
重叠
ui.comboBox->
view
()->
set
AlternatingRowColors(true);
解决方法:
在
Qt
Designer中给comboBox的字体点大小设置为当前实际要展示的文字大小,默认为9,如果我们的文字要显示12px,将其改为12。