请选择 进入手机版 | 继续访问电脑版

Qt界面美化方法(使用QSS样式表,内有资源下载链接)

[复制链接]
欣荣 发表于 2021-1-3 12:00:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
最近在用Qt+VS开发应用步伐,需要对应用步伐的界面举行美化,最简单的美化方法就是使用QSS样式表,下面纪录一下。
QSS样式表的资源: 传送门
准备工作

下载好QSS样式表资源
我用的版本是:VS2015+Qt5.9.4,其他版本的方法也是一样的。
使用方法

1.1 下载样式文件,解压将其放到工程路径下

解压,注意路径


1.2 向qrc文件中添加文件

双击qrc文件
添加新的空前缀 /

添加文件
把需要的都添加进去
依次添加flatwhite,lightblue,psblack等目次下的全部文件

查抄文件URL是否符合规格!!
CSS文件::/qss/flatwhite.css (必须一致)

PNG文件::/qss/flatwhite/add_bottom.png (必须一致)

记着生存
步伐调用

在.h文件中加上头文件
  1. #include
复制代码
.h文件注册槽函数
  1. private slots:        //蓝色风格        void set_blueStyle();        //白色风格        void set_whiteStyle();        //玄色风格        void set_blackStyle();        //亮蓝风格        void set_darkBlue();        //蓝色风格        void set_blue();        //银色风格        void set_silvery();        //灰色风格        void set_gray();        //红蓝风格        void set_red();
复制代码
.cpp文件调用并毗连信号槽
  1. PCLVisualizer::PCLVisualizer(QWidget *parent)        : QMainWindow(parent){        ui.setupUi(this);        //固定窗口巨细        int width = this->geometry().width();        int height = this->geometry().height();        this->setFixedSize(width, height);        //加载样式表        QString qss;        QFile file(":/qssghtblue.css");        if (file.open(QFile::ReadOnly))        {                //用readAll读取默认支持的是ANSI格式,如果不小心用creator打开编辑过了很大概打不开                qss = QLatin1String(file.readAll());                QString paletteColor = qss.mid(20, 7);                qApp->setPalette(QPalette(QColor(paletteColor)));                qApp->setStyleSheet(qss);                file.close();        }                connect(ui.actionStyleBule, &QAction::triggered, this, &PCLVisualizer::set_blueStyle);        connect(ui.actionStyleWhite, &QAction::triggered, this, &PCLVisualizer::set_whiteStyle);        connect(ui.actionStyleBlack, &QAction::triggered, this, &PCLVisualizer::set_blackStyle);        connect(ui.actiondarkBlue, &QAction::triggered, this, &PCLVisualizer::set_darkBlue);        connect(ui.actionSilvery, &QAction::triggered, this, &PCLVisualizer::set_silvery);        connect(ui.actionBlue, &QAction::triggered, this, &PCLVisualizer::set_blue);        connect(ui.actionGray, &QAction::triggered, this, &PCLVisualizer::set_gray);        connect(ui.actionred, &QAction::triggered, this, &PCLVisualizer::set_red);
复制代码
  1. //界面风格设置void PCLVisualizer::initQssStyle(QColor color){        QString cssStr;        if (color == Qt::white)                cssStr = ":/qss/flatwhite.css";        else if (color == Qt::black)                cssStr = ":/qss/psblack.css";        else if (color==Qt::blue)        {                cssStr = ":/qssghtblue.css";        }        else if (color == Qt::darkBlue)        {                cssStr = ":/qss/test.css";        }        else if (color == Qt::Key_Blue)        {                cssStr = ":/qss/blue.css";        }        else if (color == Qt::darkGray)        {                cssStr = ":/qss/lightgray.css";        }        else if (color == Qt::darkRed)        {                cssStr = ":/qss/silvery.css";        }        else if (color == Qt::red)        {                cssStr = ":/qss/red.css";        }        else        {                return;        }        //加载样式表        QString qss;        QFile file(cssStr);        if (file.open(QFile::ReadOnly))        {                //用readAll读取默认支持的是ANSI格式                //如果不小心用creator打开编辑过了很大概打不开                qss = QLatin1String(file.readAll());                QString paletteColor = qss.mid(20, 7);                qApp->setPalette(QPalette(QColor(paletteColor)));                qApp->setStyleSheet(qss);                file.close();        }}//蓝色风格void PCLVisualizer::set_blueStyle(){        this->initQssStyle(Qt::blue);}//白色风格void PCLVisualizer::set_whiteStyle(){        this->initQssStyle(Qt::white);}//玄色风格void PCLVisualizer::set_blackStyle(){        this->initQssStyle(Qt::black);}//亮蓝风格void PCLVisualizer::set_darkBlue(){        this->initQssStyle(Qt::darkBlue);}//蓝色风格void PCLVisualizer::set_blue(){        this->initQssStyle(Qt::Key_Blue);}//银色风格void PCLVisualizer::set_silvery(){        this->initQssStyle(Qt::darkGray);}//灰色风格void PCLVisualizer::set_gray(){        this->initQssStyle(Qt::darkRed);}//红蓝风格void PCLVisualizer::set_red(){        this->initQssStyle(Qt::red);}
复制代码
注意: 根据自己的界面步伐将代码中的PCLVisualizer换成自己定名的名称便可
有什么疑问可以在品评中留言讨论

来源:https://blog.csdn.net/whb1815/article/details/112021414
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )