关于如何使用QSS实现QPushButton QToolButton上的图片拉伸和文字对齐

需求:QSS实现按钮效果,图片在上,文字在下

 

1. 设计给的图片48x48图标

2.不采用设置icon的方式,因为icon无法响应鼠标按下操作,所以使用border-image,那么如何向下拉伸图片呢?如下:

QPushButton#pushButton
{

  border-image:url(:/image/icon_gd.png)48 0 0 0;
      border-width:48px 0px 0px 0px;
   font-size:18px;
   color:blue;
}

QToolButton#pushButton:hover
{
  border-image:url(:/image/icon_gd_hover.png)48 0 0 0;
      border-width:48px 0px 0px 0px;
}
拉伸参数解释

参数1:是将图片从下往上数到n个像素的位置
参数2:是将图片从右往左数到n个像素的位置
参数3:是将图片从上往下数到n个像素的位置
参数4:是将图片从左往右数第n个像素的位置

3.那么如何调整文字的显示位置呢?请调整控件的高度和border-width的值,(0,48px,0,0)即为文字的显示区域。大家可以自行测试,相信很快就会明白。

--------------------N个月后,似乎找到了更加合理的解决办法------------------------------------------------------------------

1.设置image ,image可以根据状态切换

2.设置border-color 或者border-image  

因为绘制有先后顺序:border>image->icon,这样就不用拿图标去做拉伸了,直接贴到底图上就可以了,至于文字的显示位置,可以设置padding-top

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值