QT学习笔记-使用QSS美化程序界面

QT学习笔记-使用QSS美化程序界面

背景

QT的GUI开发过程中,窗体以及窗体控件默认都是系统基本样式,QT提供了QSS可以让程序界面变的好看,变得高大上。本文只从技术实现角度进行阐述。

编写QSS

在程序目录中新建一个stylesheet目录,在stylesheet目录下创建一个qss文件,为了可以在qt creator左侧的项目文件中能看到这个文件,我们可以修改项目的pro文件,如下:

OTHER_FILES += \
    stylesheet/common.qss \

如果希望在程序发布运行时可以修改样式,那么就不要把qss放到资源文件中,可以通过自动拷贝的设置,把stylesheet目录复制到输出目录中,具体在pro文件中添加如下内容:

# 增加文件拷贝,只设置一次就行
CONFIG += file_copies

# 以下为拷贝stylesheet目录,其中前面的stylesheet是临时变量,如果要复制多个目录,则每个目录的临时变量不要相同
stylesheet.files = $$PWD/stylesheet
stylesheet.path = $$DESTDIR
COPIES += stylesheet

然后就像编写css一样编辑qss,以下内容是对按钮的样式进行统一设置。

/*按钮基本样式*/
QPushButton
{
    
    
    background-color:#67a6f8;
    border-radius:5px;
    color:white;
    height:36px;
}
/*按钮鼠标悬停样式*/
QPushButton:hover
{
    
    
    background-color:#5f9ae6;
    color:white;
}
/*对话框按钮的最小宽度*/
QMessageBox QPushButton
{
    
    
    min-width:60px;
}
/*对话框按钮组中按钮的最小宽度*/
QDialogButtonBox QPushButton
{
    
    
    min-width:60px;
}

注意:qss中的注释请使用/*…*/,不要用//,不然会导致程序无法识别stylesheet。

在程序中加载qss

代码如下:

#include <QApplication>
#include <QDebug>
#include <QFile>
#include <QFont>

//#include "mainwindow.h"
#include "formplccomunication.h"

int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    
    QString qssFilePath = QString(a.applicationDirPath() + "/stylesheet/common.qss");
    if (QFile::exists(qssFilePath))
    {
    
    
        QFile qssFile = QFile(qssFilePath);
        if (qssFile.open(QFile::ReadOnly))
        {
    
    
            QString qssFileContent = qssFile.readAll();
            a.setStyleSheet(qssFileContent);
            qDebug() << "成功读取common.qss文件内容...";
            qssFile.close();
        }
    }
    
    QApplication::setFont(QFont("宋体", 12));             //设置全局字体

    FormPlcComunication formPlcComunication;
    formPlcComunication.show();

    return a.exec();
}

运行效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zlbdmm/article/details/129625572