QT stylesheet 样式

参考
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");
}

您的支持,是我持续创作的动力!!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值