Qt样式表,针对QTableview设置qss举例

Qt样式设置是Qt学习一部分之一,本文为自己记录使用。

要看例子直接拉到最下边。
关于qss首先需要了解盒子模型QSS盒子模型
关于qss的官方例子及解释官方文档关于qss说明
大家可以看官方文档了解这里不做过多的解释,毕竟官方比个人清楚太多。

对于QTableview这种类似控件需要分为四部分设置一个是主体部分也就是QTableview本身,一个为表头QHeaderView,一个是表项QTableView::item,另外一个为滑动条QScrollBar设置。

关于渐变色说明:
渐变色(gradient)是一种强大的特性,它允许你创建从一种颜色平滑过渡到另一种颜色的效果。这可以应用于Qt应用程序中的各种元素,如按钮、背景等。Qt支持几种类型的渐变,其中最常用的是线性渐变和径向渐变。

线性渐变 (qlineargradient)
线性渐变是沿直线方向的颜色渐变。它通过定义两个点和在这两点之间颜色的变化来创建。在QSS中,你可以这样定义一个线性渐变:

qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 white, stop:1 black)

这里的参数解释如下:
x1, y1:渐变的起始点坐标(在这个例子中是左上角)。
x2, y2:渐变的结束点坐标(在这个例子中是右上角)。
stop:0 white:在起始点的颜色(stop:0表示渐变的开始,颜色为白色)。
stop:1 black:在结束点的颜色(stop:1表示渐变的结束,颜色为黑色)。
坐标x1, y1, x2, y2是相对于元素的大小的比例,其中0表示起始边,1表示终止边。这意味着你可以通过调整这些值来控制渐变的方向和长度。

径向渐变 (qradialgradient)
径向渐变是从一个点向外扩散的颜色渐变。它可以通过以下方式在QSS中定义:

qradialgradient(cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 white, stop:1 black)

参数解释:
cx, cy:渐变的中心点坐标(在这个例子中是元素的中心)。
radius:渐变的半径(0.5表示渐变半径是元素宽度的一半)。
fx, fy:焦点坐标,即渐变开始的点(在这个例子中与中心点相同)。
stop:0 white:在焦点的颜色(渐变的开始颜色为白色)。
stop:1 black:在边缘的颜色(渐变的结束颜色为黑色)。
和线性渐变一样,cx, cy, fx, fy和radius的值是相对于元素大小的比例。

使用渐变
使用渐变时,最重要的是理解stop值和对应的颜色。stop值决定了颜色变化的位置,其范围从0.0(渐变开始)到1.0(渐变结束)。你可以添加多个stop值来创建更复杂的渐变效果,例如:

qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 red, stop:0.5 green, stop:1 blue)

这将创建一个从上到下的渐变,颜色从红色开始,经绿色过渡到蓝色结束。

关于选中下的状态简单的可以使用qss:

QTableView::item:selected {
    background-color: #567dbc; 
    color: white; 
}

过于复杂的样式需要使用委托去做这里不做过多介绍。

QTableview样式例子:

QHeaderView::section
{
background:rgba(14, 14, 14, 0);
color:rgba(182, 182, 182, 1);
}
QTableView{
    background-color:rgba(14, 14, 14, 0);
    color:rgba(182,182,182,1);
	padding:4px 4px;
	border:none;
}
QTableView::item{
  background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
        stop:0 rgba(54, 54, 54, 255),
        stop:1 rgba(41, 41, 41, 255));
 border-top: 4px solid #0e0e0e; 
}
QScrollBar::vertical{ 

	width: 8px;
    background:rgba(14, 14, 14, 0) ;
	padding-left:4px;
}
QScrollBar::handle:vertical{
 
     min-height: 88px; 
    background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(64,64,67,255), stop:1 rgba(51,51,54,255));
}
QScrollBar::add-line:vertical {
	border: none;
	background: none;
	height: 0px;
	subcontrol-position: bottom;
	subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
	border: none;
	background: none;
	height: 0px;
	subcontrol-position: top;
	subcontrol-origin: margin;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
	background: none;
}

后边有啥更新再做修改。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值