Qt QSS的几种图片显示方式

大家在使用QSS进行图片设置时,一定被image, border-image, background-image这几个属性困扰过。比如他们之间有什么区别,什么时候该用哪个属性来设置等等。本文就来讲解一下这个几个属性的异同点。

在讲解之前需要大家对Qt的盒子模型有所了解,建议大家先阅读一下《Qt QSS使用》文章中关于盒子模型的部分。
在这里插入图片描述

一、background-image

background-image按图片实际尺寸显示图片,超过控件显示区域的部分会被裁剪掉,虽能显示SVG,但无法对SVG进行无损缩放;

关于background-image的几个附属属性的作用,可以一句话概括为:
background-origin区域的background-position位置开始绘制图像,并以background-repeat方式进行重复;最后将图像background-clip区域以外的范围裁剪掉(即不显示)。

二、image

图片原长宽比来缩放图片,保证填充满控件content区域,支持SVG矢量图显示和无损缩放;
image可以使用image-position来指定图片开始显示的位置(参考上面background-position)。

三、border-image

控件border区域的长宽比来缩放图片,保证填充满控件border区域,支持SVG矢量图显示和无损缩放;

四、绘制顺序

如果在一个控件中同时指定background-imageborder-imageimage这三个属性,会按照如下的顺序进行绘制:

先绘制 background-image
然后 border-image
最后 image

五、示例

QPushButton#pushButton4 {
	border: 20px solid rgba(0,0,255,0.5);
	padding: 20px;
	margin: 20px;
	background-image: url(:/QssUsage/Image/头像.png); /*下图中的圆形头像*/
	background-origin: margin;
	background-position:top left;
	background-repeat:repeat-x;
	background-clip: margin;
}

在这里插入图片描述

欢迎访问我的个人站点: https://jiangxueqiao.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

china_jeffery

你的鼓励是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值