当前位置: 首页 > article >正文

Qt 实现应用程序换肤功能

1、工程目录
在这里插入图片描述
2、界面设计
在这里插入图片描述

3、mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class QFile;
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    
private slots:
    /**
     * @brief 换肤按钮
     */
    void on_pushButton_clicked();
    
private:
    Ui::MainWindow *ui;
    QFile *qssFile;
};
#endif // MAINWINDOW_H

4、mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qssFile = new QFile(":/resource/qss/old.qss");
    qssFile->open(QFile::ReadOnly);
    // 使用 tr() 方法将其转换为 QString 类型
    QString qssStyleSheet = tr(qssFile->readAll());
    // 为应用程序设置样式表
    qApp->setStyleSheet(qssStyleSheet);
    qssFile->close();
}

MainWindow::~MainWindow()
{
    delete ui;
}

/**
 * @brief 换肤按钮
 */
void MainWindow::on_pushButton_clicked()
{
    if(qssFile->fileName() == ":/resource/qss/old.qss")
    {
        qssFile->setFileName(":/resource/qss/new.qss");
    }
    else
    {
        qssFile->setFileName(":/resource/qss/old.qss");
    }
    qssFile->open(QFile::ReadOnly);
    // 使用 tr() 方法将其转换为 QString 类型
    QString qssStyleSheet = tr(qssFile->readAll());
    // 为应用程序设置样式表
    qApp->setStyleSheet(qssStyleSheet);
    qssFile->close();
}

http://www.kler.cn/a/286238.html

相关文章:

  • 01.01、判定字符是否唯一
  • OpenCV:闭运算
  • Redis 基础命令
  • Springboot使用AOP时,需不需要引入AspectJ?
  • 计算机网络 (62)移动通信的展望
  • 利用飞书机器人进行 - ArXiv自动化检索推荐
  • ASP.NET Core 入门教程二 实现基本 GET 和 POST 接口
  • 【论文解读】SAM模型超级进化:面向移动端的轻量级SAM,比FastSAM快4倍!(附论文地址)
  • 【攻略】第三届数据库大赛创新上云性能挑战赛-高性能分析型查询引擎赛道-冠军
  • OpenCV绘图函数(5)绘制标记函数drawMarker()的使用
  • C++避坑小知识
  • 短视频流量|基于SprinBoot+vue的短视频流量数据分析系统(源码+数据库+文档)
  • 【华三】不懂链路聚合?看这篇就够了!华三配置详解
  • 公众号里的产品宣传册是如何制作的?
  • 2024HarmonyOS应用开发者高级认证最新整理题库和答案(已收录182道 )
  • 【Qt的TS文件转换器】利用Python实现自动化TS文件转换
  • 疲劳驾驶行为检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • DNS部署与安全
  • 花店鲜花管理与推荐系统+Python+Django网页界面+管理系统+计算机课设
  • PHP:构建高效Web应用的强大语言
  • ECMAScript和JavaScript区别
  • OpenCV绘图函数(8)填充凸多边形函数fillConvexPoly()的使用
  • Linux中安装Docker环境
  • 域名是什么
  • 简单了解数据库--笔记03
  • 依赖倒置原则详细介绍