Qt中用QSS切分图片

本文介绍如何在Qt中通过QSS来动态处理png长图,根据不同状态截取不同部分作为按钮的样式,实现按钮点击、鼠标悬浮等不同状态的效果。并提供了调用和声明函数的相关说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Github个人博客:https://joeyos.github.io

Qt设计时有时需要实现动态按钮,按钮点击时一个状态,鼠标悬浮时一个状态,离开时一个状态,静止时一个状态。可以用一张png长图,使用QSS分段截取,分配给每一个状态。
这里写图片描述
这里写图片描述
这里写图片描述
###1.调用函数

    SetButtonStyle(ui->flashButton,":/images/button.png",4);//Qss切割图片

###2.声明函数

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("QPu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值