Qt-软件皮肤切换qss样式

4 篇文章 0 订阅

效果

配置文件

原理

加载ini中的配置文件去替换app.qss中的颜色 

void QssHelper::setSkinStyle(const QString &t_name)
{
    getIniFileColor(t_name);
    replaceColorQssFile();
}

void QssHelper::getIniFileColor(QString t_nama)
{
    QString strPath = "./qss/ini/" + t_nama + ".ini";

    QSettings settings(strPath, QSettings::IniFormat);

    m_strPanelColor   = settings.value(QString("PanelColor")).toString();
    m_strTextColor    = settings.value(QString("TextColor")).toString();
    m_strBorderColor  = settings.value(QString("BorderColor")).toString();
    m_strNormalColor  = settings.value(QString("NormalColor")).toString();
    m_strDarkColor    = settings.value(QString("DarkColor")).toString();
    m_strHighColor    = settings.value(QString("HighColor")).toString();

    m_strCustomColor1 = settings.value(QString("CustomColor1")).toString();
    m_strCustomColor2 = settings.value(QString("CustomColor2")).toString();
    m_strCustomColor3 = settings.value(QString("CustomColor3")).toString();
    m_strCustomColor4 = settings.value(QString("CustomColor4")).toString();
}

void QssHelper::replaceColorQssFile()
{
    QString qss;

    QFile file("./qss/app.qss");
    if (file.open(QFile::ReadOnly)) {
        qss = QLatin1String(file.readAll());
    }

    qss.replace("PANELCOLOR",  m_strPanelColor );
    qss.replace("TEXTCOLOR",   m_strTextColor  );
    qss.replace("BORDERCOLOR", m_strBorderColor);
    qss.replace("NORMALCOLOR", m_strNormalColor);
    qss.replace("DARKCOLOR",   m_strDarkColor  );
    qss.replace("HIGHCOLOR",   m_strHighColor  );
    qss.replace("CUSTOMCOLOR1",m_strCustomColor1);
    qss.replace("CUSTOMCOLOR2",m_strCustomColor2);
    qss.replace("CUSTOMCOLOR3",m_strCustomColor3);
    qss.replace("CUSTOMCOLOR4",m_strCustomColor4);

    QString PaletteColor = qss.mid(13, 7);
    qApp->setPalette(QPalette(QColor(PaletteColor)));
    qApp->setStyleSheet(qss);
}

自定义颜色

    ui->widget->setProperty("CustomColor", 1);
    ui->label->setProperty("CustomColor", 1);
    ui->pushButton->setProperty("CustomColor", 2);

下载地址

laomagood/Qss (github.com)

图标颜色更改

配合下面这款下工具

png图像颜色替换,用于软件皮肤样式_给我来个鸡腿的博客-CSDN博客

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值