当前位置: 代码迷 >> QT开发 >> QT中border-image截取并拉伸的有关问题
  详细解决方案

QT中border-image截取并拉伸的有关问题

热度:13   发布时间:2016-04-25 03:23:48.0
QT中border-image截取并拉伸的问题
要做一个登录按钮,UI提供的图片,
三个按钮状态是连在一起给的(即图片需要进行截取),
并且提供图片的宽度小于按钮宽度(及图片需要进行拉伸)

UI图片:
UI需要效果:

对此我写的QSS如下:
QPushButton#login_loginbtn{
border-width: 5px;                                                            //为了边角的拉伸不失真
border-image: url(:/images//loginbtn.png)  0 0 72 0;//为了图片中三个状态的截取
}
但实际并不能达到想要的效果(平常的处理中,只做截取或只做拉伸这么做都是可行的)

网上没找到同时截取和拉伸的例子,求帮助。
------解决方案--------------------
让美工分开不就行了吗
------解决方案--------------------
试了一下,下面这个样式表应该可以满足楼主的要求,只是最好在图片上画三个“登录”的字:
QPushButton:!hover
{
border: none;
background-image: url(:/images/loginbtn.png);
}
QPushButton:hover:!pressed
{
margin-top: -36px;
border: none;
background-image: url(:/images/loginbtn.png);
}
QPushButton:pressed
{
margin-top: -72px;
border: none;
background-image: url(:/images/loginbtn.png);
}
------解决方案--------------------
呵呵,上面那个确实有问题,试试这个
QPushButton:!hover
{
border-image: url(:/images/loginbtn.png)  0 0 72 0;
}
QPushButton:hover:!pressed
{
border-image: url(:/images/loginbtn.png)  36 0 36 0;
}
QPushButton:pressed
{
border-image: url(:/images/loginbtn.png)  72 0 0 0;
}
------解决方案--------------------
得分成3个png
  相关解决方案