参考
http://blog.csdn.net/what951006/article/details/51689142
组合框样式
QComboBox {
font:30px; /*字体大小*/
color: #FFFFFF; /*字体颜色*/
padding-left: 1px; /* 设置这个,QComboBox::drop-down的图标才正常。padding是指自身边框到自身内部另一个容器边框之间的距离 */
background-color: rgba(0, 0, 0, 0); /* 透明 */
border: none;/* 去掉边框 */
combobox-popup: 0; /* 修改下拉框的式样,可取0,1
*/
}
QComboBox::drop-down { /*没点击组合框时,右边三角图标 */
margin-top: 11px; /*距离控件顶部11px */
image: url("/data/Debug/image/common/combobox_arrow_up.png");
}
QComboBox::down-arrow:on { /*点击组合框时,右边三角图标 */
image: url("/data/Debug/image/common/combobox_arrow_down.png");
}
QComboBox:on { /* shift the text when the popup opens */
padding-top: 3px;
padding-left: 4px;
}
QComboBox QAbstractItemView{/* 弹出的列表式样 */
border: none; /* 无边框 */
border-radius: 6px; /* 圆角 */
color: #FFFFFF; /* 字体白色 */
background-color: #292929; /* 背景灰色 */
selection-color: black; /* 选中时,黑色 */
selection-background-color: darkgrey;/* 选中时,的背景,灰色 */
margin-top: 2px;/* 列表离组合框的距离为2px */
}
QComboBox QAbstractItemView::item{
height:70; /* item的高度 */
}
要让QAbstractItemView::item式样生效,继承QStyledItemDelegate类,重载paint函数
void myComboBoxItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
#define POPU_LINE_SPACE 20
QPen pen;
QStyleOptionViewItem viewOption(option);
if(index.row() > 0)//跳过第一行
{
//画线
QLine line(viewOption.rect.left() + POPU_LINE_SPACE, viewOption.rect.top(), viewOption.rect.right() - POPU_LINE_SPACE, viewOption.rect.top());
qDebug()<<" left "<<viewOption.rect.left() <<" top "<< viewOption.rect.top()<<" right " <<viewOption.rect.right()<<" top "<< viewOption.rect.top() <<" row " << index.row() <<" colom " <<index.column();
pen.setColor(QColor("#595959")); // 设置画笔颜色
painter->setPen(pen); // 设置画笔
painter->drawLine(line);
}
QStyledItemDelegate::paint(painter, viewOption, index);
}
然后在用combobox的地方设置delegate
m_comBoxtemdelegate = new myComboBoxItemDelegate(this);
ui->comboBox->setItemDelegate(m_comBoxtemdelegate);
划块样式
QSlider::groove:horizontal {/* 控件可点击的范围 = border*2 + height。 不超过控件的整个大小 */
border: 30px;/* 线周围区域的大小。 */
background: #828282;
height: 4px;/* 线的高度 */
}
QSlider::sub-page:horizontal {/* 划块划过的区域 */
background: #d96c36;
border: 30px ;/* 覆盖QSlider::groove */
}
QSlider::handle:horizontal { /* 划块的式样 */
border-image: url("/data/Debug/image/common/slider_handle.png");
width: 40px;/* 划块的宽 */
margin-top: -21px; /* 向上超出线的高,设置height是无效的 */
margin-bottom: -21px;/* 向下超出线的高 */
}
复选框式样
QCheckBox{
color: #FFFFFF;
font:30px
}
QCheckBox::indicator:checked{ /* 选中 */
image:url("/data/Debug/image/common/checkbox_check.png");
}
QCheckBox::indicator:unchecked{ /* 没选中 */
image:url("/data/Debug/image/common/checkbox_uncheck.png");
}
您的支持,是我持续创作的动力!!!!