QT实现图片按钮(用qss切割图片,或者放三张图片)
2024-09-01 07:47:53
我在网上找了很久,把他综合了一下
不说了关键代码来了;(这是一张图片切图的效果)
- void SetButtonStyle(QPushButton *button, QString imgsrc, int CutSec)
- {
- 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));
- }
调用
- SetButtonStyle(ui->pushButton,":/btn/image/btn.png",4);
效果图
(资源)
还有一种方式就是三张独立的图片
- ui->pushButton->setStyleSheet("QPushButton{border-image: url(:/btn/image/1.png);}"
- "QPushButton:hover{border-image: url(:/btn/image/3.png);}"
- "QPushButton:pressed{border-image: url(:/btn/image/2.png);}");
最新文章
- squid 2.7 配置与安装
- 创建WordPress管理员账号
- 史上最全的Python电子书教程资源下载(转)
- Spring MVC异常处理详解
- linux中安装eclipse,安装好之后不能直接建servlet,不能直接在jsp页面中run on server.权限在作怪,我猜的,
- 二、JavaScript语言--JS实践--倒计时效果
- SQL语句 - 数据操作
- https协议
- 以一个上传文件的例子来说 DistributedFileSystem
- 常用的css的技巧
- .Net Core 学习资料
- 前端系列之JavaScript基础知识概述
- 【Unity技巧】LOGO闪光效果
- SQL Server 优化
- 02 of learning python
- ARMCC和GCC编译ARM代码的软浮点和硬浮点问题 【转】
- sybench压测下模拟误truncate数据恢复
- TOP100summit【分享实录-网易】构建云直播分发网络
- JMeter:全面的乱码解决方案
- python面试题(转自https://www.cnblogs.com/wupeiqi/p/9078770.html)