Qss主要是对界面控件的美化
1 创建资源文件myqrc.qrc和 myqss.qss文件,*.pro 文件显示如下
2 添加myqss.qss作为资源文件
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 项目目录结构
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_Hmainwindow.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);; }