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;}");