实现简单的换肤功能

开发环境:QT5 ,mingw

需求:用户选择后换肤

换肤范围,主界面颜色,以及控件颜色

用到的东西包括combox 的根据索引发送信号,QFile读取文件,QSS的使用。

核心代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QFile>
#include<QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // 主界面加载初始QSS样式表,一开始加载skin1
        QFile file(":/skin1.qss");
        if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
            QTextStream in(&file);
            QString styleSheet = in.readAll();
            file.close();

            qApp->setStyleSheet(styleSheet);
        }
}

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


void MainWindow::on_comboBox_currentIndexChanged(int index)
{
    qDebug()<<"121";
    // 读取QSS文件
        QString styleSheet;

        if (index == 0) {
            QFile file(":/skin1.qss");
            if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
                QTextStream in(&file);
                styleSheet = in.readAll();
                file.close();
            }
        } else if (index == 1) {
            QFile file(":/skin2.qss");
            if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
                QTextStream in(&file);
                styleSheet = in.readAll();
                file.close();
            }
        }

        // 如果成功读取样式表,应用它
        if (!styleSheet.isEmpty()) {
            qApp->setStyleSheet("");  // 清除之前的样式表
            qApp->setStyleSheet(styleSheet);  // 应用新的样式表
        }
}

QPushButton{

        background-color: rgb(255, 255, 127);
        border:none;
}

QLineEdit{
        background-color: black; color: white;
}
MainWindow{
     background-color:lightblue;
}

QPushButton{

        background-color: rgb(0,153,117);
        border:none;
}
QLineEdit{
        background-color: white; color: black;
}
MainWindow{
     background-color:rgb(147,115,72);
}

#QT##C++#
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务