Qt之QSS中替代background-position的方法。

学过css的朋友,应该都多少了解一些雪碧图相关的知识。

雪碧图,用的就是background-position来确定选取的素材位置。

比如:


素材中每张扑克的宽高分别为49px,66px。

如果我要选用红桃8,我就会在css中写 background-position:-343px -132px;(宽高也要设置)这样我就可以在网页中准确的截取到红桃8部分。


QSS中也有background-position样式,但是并不完全和CSS一样,在Qt中background-position只有top bottom left right center五个关键字,并不能定位到所有的牌。

在这种情况下,我们可以选取另外一种方法来替代background-position样式。

background-image:url(:/new/prefix1/card.png);
margin-left:-343px; 
margin-top:-132px;


当然,CSS和QSS都不可以有运算功能,如果定位的时候像素需要计算出来,就可以使用以下方法:


int xPos = GetCardValue(card) * 49;
int yPos = GetCardColor(card) * 66;
char style[150];
sprintf(style,"background-image:url(:/new/prefix1/card.png);margin-left:-%dpx; margin-top:-%dpx;",xPos,yPos);
this->setStyleSheet(style);

以上内容均为博主本人学习过程中遇到的问题和博主的解决方法,如有错误,希望大家指出,共同进步,谢谢。




  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值