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

来源:互联网 发布:淘宝会员名怎么更改 编辑:程序博客网 时间:2024/06/04 23:23

学过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);

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




0 0
原创粉丝点击