QT样式表(一)

目录

QSS样式表设置

1、概念

1、通过UI设计器的可视操作修改

2、通过代码修改

3、从样式文件加载

2、样式表语法

选择器的类型

3、设置背景图片

1、添加资源文件

2、使用label控件 显示头像,在样式表文件中进行设置

3、在项目中添加图片资源


QSS样式表设置

1、概念

Qt样式表(style sheet)适用于定制用户界面的机制,是受到HTML中的CSS启发而来,Qt样式表是应用于窗体界面和批量设置控件的外观,与HTML的CSS类似,Qt的样式表是纯文本的格式定义,在应用程序运行时可以载入和解析这些样式定义,从而使应用程序的界面呈现不同的效果。很多软件有换肤功能,就是使用类似于样式表的功能。

1、通过UI设计器的可视操作修改

改变按钮的文本颜色

2、通过代码修改

//设置按钮btn1的文本颜色 ui->btn1->setStyleSheet("color: rgb(255, 255, 0);");

3、从样式文件加载

一般把样式文件写到.css格式后缀的文本文件中,因为notepad++可以识别该格式打开,能很方便的带颜色显示和编辑。放到程序目录的单独的qss文件夹内,就像配置文件一样。一般通用的样式,写到一个主css文件,供整个程序加载;一些特殊样式就给所在窗口单独建一份样式文件,对该窗口加载。

第一步:建立文本文件,写入样式表内容,更改文件后缀名为qss 或者css

第二步:在工程中新建资源文件 *.qrc ,将css文件加入资源文件中,

第三步:在窗口类的构造函数中 使用代码的方式加载 样式表文件

//在文本中加载样式表 
QFile styleFile(":/qss/style.css"); 
styleFile.open(QFile::ReadOnly); 
this->setStyleSheet(styleFile.readAll()); 
styleFile.close();

2、样式表语法

一个样式法则由 一个选择器(selector)和一些声明(declaration)组成。

格式:

选择器{ 
    属性1: 值1; 
    属性2: 值2;
     ...... 
};

选择器:

  1. 通用选择器* ,表示所有组件
  2. 类型选择器,比如QPushButton,表示所有QPushButton类以及子类的组件
  3. ID选择器,比如 QPushButton#btnOK  ,表示ObjectName为btnOK的QPushButton实例
  4. ....
QLabel{
    background-color: rgb(255, 255, 0); 设置背景颜色
}
QPushButton:hover{鼠标进入控件设置背景颜色
    background:rgb(115, 183, 255);
}
QPushButton#btn1{
    border:1px solid #0000ff;  设置边框大小,边框颜色
    border-radius:50px; 设置圆角边框
    color:red; 设置字体颜色
}

选择器的类型

选择器是样式表中最重要的部分之一,它用于确定哪些控件将应用样式表。在Qt中,选择器包括类型选择器、后代选择器和类选择器。

通用选择器

通用选择器* ,表示所有组件,一般用来设置字体

*

{

        font: 14pt "Arial";

}

类型选择器

是一种基本的选择器,用于选择某种类型的控件。例如,QLabel是QLabel控件的类型选择器,或者myclass是QLabel的派生类:

QLabel {

        color: red;

}

QLabel.myclass {

        //myclass类,是继承QLabel的

        color: red;

}

后代选择器

用于选择控件的后代,即控件中嵌套的子控件。例如,选择QGroupBox控件中的QLabel控件, 和QLineEdit字体颜色设置为红色:

QGroupBox QLabel {

        color: red;

}

QGroupBox QLineEdit {

        color: red;

}

ID选择器

ID选择器用于选择具有特定ID的控件。ID选择器以"#"开头,后跟ID名。例如,选择ID为"myid"的QPushButton控件:

QPushButton#myid {

        background-color: blue;

}

这样,具有ID为"myid"的QPushButton控件的背景颜色将被设置为蓝色。

子控件选择器

子控件选择器用于选择控件的子控件并对其应用样式子控件选择器以"::"开头,后跟子控件类型。例如,选择QComboBox控件的下拉箭头:

QComboBox::down-arrow {

        image: url(arrow.png);

}

这样,QComboBox控件的下拉箭头图像将被设置为"arrow.png"。

状态选择器

状态选择器用于选择具有特定状态的控件。例如,选择被按下的QPushButton控件:

QPushButton:pressed

{

        background-color: yellow;

}

这样,被按下的QPushButton控件的背景颜色将被设置为黄色。

3、设置背景图片

1、添加资源文件

选择工程目录右击--》添加新文件---》Qt--》QtResource file---》添加--》添加前缀--》添加文件

2、使用label控件 显示头像,在样式表文件中进行设置

QLabel#label_2{ 
    border-radius:50px; 
    border-image: url(:/imags/imags/1.jpg); 
}

3、在项目中添加图片资源

图片格式:jpg ,png

实现步骤:

第一步:在工程项目目录下,创建一个目录--- image,并将图片拷贝到目录 下

第一步:在工程项目目录下,创建一个目录--- image,并将图片拷贝到目录 下

第二步:右击项目 ---- > new ---> 在弹出的对话框中,设置如下图所示。

继续点击下一步,完成即可。

第三步:添加文件

在添加文件之前,要先设置一个前缀

设置完前缀后,再点击添加按钮,然后选择要添加的文件。

第四步:保存文件

第五步:给控件使用图片资源 --- ui文件中使用

第六步,在代码中,使用图片资源

ui‐>label‐>setStyleSheet("border‐image: url(:/image/off.png);");

第七步:如何实现资源图片的再次添加

一个按钮两种状态,改变图片的背景图片:

//灯按钮 
void MainWindow::on_ledbtn_clicked() { 
    if(isLedState==false)
    {
         isLedState = true; 
         ui->ledbtn->setStyleSheet("border-image: url(:/image/on.png);");
    }else{
         isLedState = false; ui->ledbtn->setStyleSheet("border-image: url(:/image/off.png);"); 
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值