Qt中使用Qss

Qss主要是对界面控件的美化

1 创建资源文件myqrc.qrc和 myqss.qss文件,*.pro 文件显示如下


2 添加myqss.qss作为资源文件

Qt中使用Qss_第1张图片

3 在ui文件里,创建2个QLabel,对象名为label_1,label_2

4 在myqss.qss文件中添加代码

QLabel[objectName="label_1"]
{
    border: 40px;
    background-color: rgba(0,255,0,255);;
}

QLabel[objectName="label_2"]
{
    border: 40px;
    background-color: rgba(255,0,0,255);;
}

5 项目目录结构

Qt中使用Qss_第2张图片

6 代码

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui>
#include <QtCore>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    bool SetQss(QWidget* const app, QString const &file);
private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qDebug()<<SetQss(this,":/myqss.qss");
}

bool MainWindow::SetQss(QWidget* const app, QString const &file)
{
    QFile qssFile(file);
    qssFile.open(QFile::ReadOnly);
    if(qssFile.isOpen())
    {//读取qss文件
        QString qss = QLatin1String(qssFile.readAll());
        app->setStyleSheet(qss);
        qssFile.close();
        return true;
    }
    else
    {
        return false;
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}
7 运行效果



代码说明:

QLabel[objectName="label_1"] //表示只对label_1有效
{
    border: 40px;
    background-color: rgba(255,0,0,255);;
}
<pre name="code" class="cpp">QLabel //表示对所有QLabel有效
{
    border: 40px;
    background-color: rgba(255,0,0,255);;
}

 
 






你可能感兴趣的:(qt,QSS)