Qss样式表加载

Qss样式表加载方法有3,下面逐条叙述方法:

1.在ui界面修改

进入ui界面后右键,找到改变样式表,
在这里插入图片描述
在弹出的对话框中进行样式表编辑
在这里插入图片描述
首先我感觉这个方法用着非常的不爽,字小的一批,没有高亮没有提示,(虽然我试过的所有写qss的方法都不爽,不知道各位大神有没有,有自动补齐的qss编辑器给推荐)。其次,学C++的人就感觉用ui界面写东西巨low(抱头求饶)。

2.加载qss文件

首先在资源文件里扔一个.qss文件,随便叫什么
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的.qss文件随便扔一个空文本然后重新命名一下就好了。(其实可以有更智能的方法吧,江郎才尽)
在这里插入图片描述
然后 ctrl+r 编译一下就好了,

然后可以添加一下高亮。

高亮

在这里插入图片描述
修改模式栏为* .css;*.CSSL;*.qss即可
在这里插入图片描述
效果如下:
在这里插入图片描述
用这种方法写qss代码的时候要注意,初学的时候最好写一行编译一次,不然最后没有效果找不出问题,就很难受。

QLineEdit {
    background-color: yellow;
    color: rgb(87, 155, 175);
    selection-color: yellow;
    selection-background-color:rgb(87, 155, 175);
}

QPushButton{/*按钮无任何操作时*/
    background-color: green;/*背景色*/
}

QPushButton:hover{ /*鼠标悬停在按钮上时*/
    background-color:red;
}

QPushButton:pressed{/*按钮被按下时*/
    background-color:green;
}

*[mandatoryField="true"]{
    background-color:blue;
}

刚才只是创建了文件,下面就要加载了,在.h文件里声明如下函数,

void loadStyleSheet(const QString &styleSheetFile);

然后在.cpp文件里实现并调用如下


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //调用
    this->loadStyleSheet(":/style.qss");
	//测试代码
    this->setFixedSize(500,500);
    btn = new QPushButton(this);
    btn->setText("你是最棒的");
    btn->move(50,60);

    QLineEdit *lineEdit = new QLineEdit(this);
    lineEdit->setText("该睡觉了");
    lineEdit->move(0,200);

    QLineEdit * nameEdit = new QLineEdit(this);
    nameEdit->setProperty("mandatoryField", true);

    QComboBox *comboBox = new QComboBox(this);
    comboBox->move(70,100);

    QSpinBox *ageSpinBox = new QSpinBox(this);
    ageSpinBox->move(0,150);
    ageSpinBox->setProperty("mandatoryField", true);
}
//函数实现
void MainWindow::loadStyleSheet(const QString &styleSheetFile)
{
    QFile file(styleSheetFile);
    file.open(QFile::ReadOnly);
    if (file.isOpen()){
        QString styleSheet = this->styleSheet();
        styleSheet += QLatin1String(file.readAll());//读取样式表文件
        this->setStyleSheet(styleSheet);//把文件内容传参
        file.close();
    }else{
        QMessageBox::information(this,"tip","cannot find qss file");

    }
}
MainWindow::~MainWindow()
{
    delete ui;
}

测试窗口效果如下:
在这里插入图片描述

3.直接在类里设置

这种方法就是直接对象上调用setStyleShee(const Qstring &styleSheet)如下;

this->setStyleShee("QPushButton{background-color:blue;}";
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值