我的主页

快递查询 :http://m.kuaidi100.com     爱快递查询 :http://www.aikuaidi.cn/              

http://www.qtcn.org/bbs/u/168050  [收藏] [复制]

w642833823

  • 10

    关注

  • 76

    粉丝

  • 46

    访客

  • 等级:新手上路
  • 总积分:43
  • 保密,2011-12-07

最后登录:2025-04-12

更多资料

日志

收藏记录Qt中用QSS切分图片

2022-09-01 15:29



1.实现动画效果
  1. void Widget::SetButtonStyle(QPushButton *button, QString imgsrc, int CutSec)
    {//=========================Qss切割图片
        int img_w=QPixmap(imgsrc).width();
        int img_h=QPixmap(imgsrc).height();
        int PicWidth = img_w/CutSec;
        button->setFixedSize(PicWidth,img_h);
        button->setStyleSheet(QString("QPushButton{border-width: 41px; border-image: url(%1)  0 0 0 %2 repeat  repeat;border-width: 0px; border-radius: 0px;}")
          .append("QPushButton::hover{border-image: url(%1) 0 0 0 %3  repeat  repeat;}")
          .append("QPushButton::pressed{border-image: url(%1) 0  0 0 %4 repeat  repeat;}")
          .append("QPushButton::checked{border-image: url(%1) 0  0 0 %4 repeat  repeat;}")


          .append("QPushButton::disabled{border-image: url(%1) 0  0 0 %5 repeat  repeat;}")
          .arg(imgsrc).arg(0).arg(PicWidth*1).arg(PicWidth*2).arg(PicWidth*3));
    }

2 优化后的代码:
  1. void Widget::SetButtonStyle(QPushButton *button, QString imgsrc, int CutSec)
    {
        //=========================Qss切割图片
        int img_w = QPixmap(imgsrc).width();
        int img_h = QPixmap(imgsrc).height();
        int PicWidth = img_w / CutSec;

        // 设置按钮的固定大小
        button->setFixedSize(PicWidth, img_h);

        // 设置按钮的样式
        button->setStyleSheet(QString("QPushButton{border-width: 0px; border-image: url(%1) 0 0 0 %2 repeat repeat;}")
                              .arg(imgsrc).arg(PicWidth)
                              .append("QPushButton::hover{border-image: url(%1) 0 0 0 %3 repeat repeat;}")
                              .arg(PicWidth * 1)
                              .append("QPushButton::pressed{border-image: url(%1) 0 0 0 %4 repeat repeat;}")
                              .arg(PicWidth * 2)
                              .append("QPushButton::checked{border-image: url(%1) 0 0 0 %4 repeat repeat;}")
                              .arg(PicWidth * 2)
                              .append("QPushButton::disabled{border-image: url(%1) 0 0 0 %5 repeat repeat;}")
                              .arg(PicWidth * 3));
    }



分类:QT|回复:0|浏览:1078|全站可见|转载
 

Powered by phpwind v8.7 Certificate Copyright Time now is:04-20 21:14
©2005-2016 QTCN开发网 版权所有 Gzip disabled