您现在的位置是:首页 > 技术文章网站首页技术文章

[Qt]切换皮肤样式

  • WangYe
  • 2020-12-09 11:47:37
  • 235 次阅读
Qt中切换皮肤样式简单,描述;

效果:

xy-20201209-114219.gif


stdafx.h

#include <QtWidgets>
#include <QtWidgets/QWidget>

Skin_Switch.h

#pragma once

#include "stdafx.h"

class Skin_Switch : public QWidget
{
    Q_OBJECT

public:
    Skin_Switch(QWidget *parent = Q_NULLPTR);
    ~Skin_Switch();
protected:
    void InitUi();  //初始化界面
    void InitProperty();    //加载初始化样式

protected slots:
    void slot_m_pButton01();    //切换皮肤一
    void slot_m_pButton02();    //切换皮肤二
    void slot_m_pButton03();    //切换皮肤三

private:
    QWidget* m_pThisWidget; //全局控件
    QHBoxLayout* m_pThisLayout; //全局控件布局
    QPushButton* m_pButton01;   //按钮一(换肤)
    QPushButton* m_pButton02;   //按钮二(换肤)
    QPushButton* m_pButton03;   //按钮三(换肤)
};

Skin_Switch.cpp

#include "Skin_Switch.h"

Skin_Switch::Skin_Switch(QWidget *parent)
    : QWidget(parent)
{
    InitUi();
    InitProperty();
}

Skin_Switch::~Skin_Switch()
{
}

void Skin_Switch::InitUi()  //初始化界面
{
    setMaximumSize(500, 500);   //最大窗口大小
    setMinimumSize(500, 500);   //最小窗口大小

    m_pThisWidget = new QWidget(this);  //添加全局空间
    m_pThisWidget->setObjectName("ThisWidget"); //设置控件名称
    m_pThisWidget->setFixedSize(500,500);   //控件大小

    m_pThisLayout = new QHBoxLayout(m_pThisWidget); //全局控件布局
    m_pThisLayout->setContentsMargins(0, 0, 0, 0);

    m_pButton01 = new QPushButton(m_pThisWidget);   //添加换肤按钮一
    m_pButton01->setText("Skin01"); //设置按钮文本
    m_pButton01->setObjectName("Skin01");   //设置按钮名称
    m_pButton01->setFixedSize(96, 32);  //设置按钮大小
    m_pThisLayout->addWidget(m_pButton01);  //添加进全局控件布局
    connect(m_pButton01, SIGNAL(clicked()),this,SLOT(slot_m_pButton01()));  //信号与槽连接

    m_pButton02 = new QPushButton(m_pThisWidget);   //添加换肤按钮二
    m_pButton02->setText("Skin02"); //设置按钮文本
    m_pButton02->setObjectName("Skin02");   //设置按钮名称
    m_pButton02->setFixedSize(96, 32);  //设置按钮大小
    m_pThisLayout->addWidget(m_pButton02);  //添加进全局控件布局
    connect(m_pButton02, SIGNAL(clicked()), this, SLOT(slot_m_pButton02()));    //信号与槽连接

    m_pButton03 = new QPushButton(m_pThisWidget);   //添加换肤按钮三
    m_pButton03->setText("Skin03"); //设置按钮文本
    m_pButton03->setObjectName("Skin03");   //设置按钮名称
    m_pButton03->setFixedSize(96, 32);  //设置按钮大小
    m_pThisLayout->addWidget(m_pButton03);  //添加进全局控件布局
    connect(m_pButton03, SIGNAL(clicked()), this, SLOT(slot_m_pButton03()));    //信号与槽连接
}

void Skin_Switch::InitProperty()    //加载初始化皮肤
{
    QFile file(":/Css/Resources/Css/Style.css");    //资源文件
    file.open(QFile::ReadOnly);    //资源打开读取
    if (file.isOpen())
    {
        QString Skin = QObject::tr(file.readAll());
        qApp->setStyleSheet(Skin);
        file.close();
    }
}

void Skin_Switch::slot_m_pButton01()    //切换皮肤一
{
    QFile file(":/Css/Resources/Css/Black.css");    //资源文件

    file.open(QFile::ReadOnly); //资源打开读取

    if (file.isOpen())
    {
        QString Skin01 = QObject::tr(file.readAll());
        qApp->setStyleSheet(Skin01);
        file.close();
    }
}

void Skin_Switch::slot_m_pButton02()    //切换皮肤二
{
    QFile file(":/Css/Resources/Css/Orange.css");   //资源文件

    file.open(QFile::ReadOnly); //资源打开读取

    if (file.isOpen())
    {
        QString Skin02 = QObject::tr(file.readAll());
        qApp->setStyleSheet(Skin02);
        file.close();
    }
}

void Skin_Switch::slot_m_pButton03()    //切换皮肤三
{
    QFile file(":/Css/Resources/Css/LawnGreen.css");    //资源文件
    file.open(QFile::ReadOnly);    //资源打开读取
    if (file.isOpen())
    {
        QString Skin03 = QObject::tr(file.readAll());
        qApp->setStyleSheet(Skin03);
        file.close();
    }
}


文章评论 (0)



Top