Qt QSS美化 基础知识

二、QSS加载方式

方式一:

1 myDialog->setStyleSheet("QLineEdit { background-color: yellow }");
2 nameEdit->setStyleSheet("background-color: yellow");

方式二:

1 QFile file(":/qss/main.qss");
2 file.open(QFile::ReadOnly);
3 QTextStream filetext(&file);
4 QString stylesheet = filetext.readAll();
5 this->setStyleSheet(stylesheet);
6 file.close();

三、QSS选择器类型

3.1 通配选择器

*  

匹配所有的控件

3.2 类型选择器

QPushButton

匹配所有QPushButton和其子类的实例

QPushButton {background: gray;}

3.3 属性选择器

QPushButton[flat="false"]

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

匹配所有flat属性是false的QPushButton实例,注意该属性可以是自定义的属性,不一定非要是类本身具有的属性

QPushButton[level='dangerous'] { background: magenta; }
/*openButton->setProperty("level",  "dangerous");*/

3.4 类选择器

 .QPushButton 

匹配所有QPushButton的实例,但是并不匹配其子类。这是与CSS中的类选择器不一样的地方,注意前面有一个点号

1 .RedButton { background: magenta; }
2  
3 /*
4 openButton->setProperty("class",  "RedButton");
5 closeButton->setProperty("class", "RedButton");
6 */

3.5 ID选择器

#myButton

匹配所有id为myButton的控件实例,这里的id实际上就是objectName指定的值

#openButton, #closeButton { background: magenta; }

3.6 后代选择器

QDialog QPushButton

所有QDialog容器中包含的QPushButton,不管是直接的还是间接的

1 QDialog {background: gray;}
2 /* 设置 QDialog中的 QPushButton 的 QSS */
3 QDialog QPushButton {
4     border: 2px solid magenta;
5     border-radius: 10px;
6     background: white;
7     padding: 2px 15px;
8 }

3.7 子选择器

QFrame> QPushButton

所有QFrame容器下面的QPushButton,其中要求QPushButton的直接父容器是QFrame,注意和后代选择器的区别

1 QFrame {background: gray;}
2 QFrame > QPushButton {
3     border: 2px solid magenta;
4     border-radius: 10px;
5     background: white;
6     padding: 2px 15px;
7 }

3.8 伪类选择器

选择器:状态 作为选择器,支持 ! 操作符,表示 非。

1 QPushButton:hover { color: white }
2 QCheckBox:checked { color: white }
3 QCheckBox:!checked { color: red }

所有的这些选择器可以联合使用,并且支持一次设置多个选择器类型,用逗号隔开,这点与CSS一样,例如:

#frameCut,#frameInterrupt,#frameJoin

表示所有这些id使用一个规则。

#mytable  QPushButton

表示选择所有id为mytable的容器下面的QPushButton实例

四、QSS常用属性
4.1 字体
大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD

样式 {font-style: oblique;}(偏斜体) italic;(斜体) normal;(正常)

行高 {line-height: normal;}(正常) 单位:PX、PD、EM

粗细 {font-weight: bold;}(粗体) lighter;(细体) normal;(正常)

变体 {font-variant: small-caps;}(小型大写字母) normal;(正常)

大小写 {text-transform: capitalize;}(首字母大写) uppercase;(大写) lowercase;(小写) none;(无)

修饰 {text-decoration: underline;}(下划线) overline;(上划线) line-through;(删除线) blink;(闪烁)

字体名:

 

微软雅黑:Microsoft YaHei

宋体:SimSun

黑体:SimHei

仿宋: FangSong

楷体: KaiTi

隶书:LiSu

幼圆:YouYuan

华文细黑:STXihei

华文楷体:STKaiti

华文宋体:STSong

华文中宋:STZhongsong

华文仿宋:STFangsong

方正舒体:FZShuTi

方正姚体:FZYaoti

华文彩云:STCaiyun

华文琥珀:STHupo

华文隶书:STLiti

华文行楷:STXingkai

华文新魏:STXinwei

1 font: 15px "Segoe UI";             /* 字体:大小 名称 */  
2 font-family: "Segoe UI";           /* 字体名称 */

4.2 颜色

17种标准色:aqua, black, blue, fuchsia, gray, green, lime, maroon, navy,olive, orange, purple, red, silver, teal, white, yellow

 

1 colo:rgb(255,255,255);   
2 color: #F5F5F5;               /* 前景(文本)颜色 */  
3 color: qlineargradient();     /* 前景(文本)颜色:线性渐变*/  
4 color: qradialgradient();     /* 前景(文本)颜色:辐射渐变*/  
5 color: qconicalgradient();    /* 前景(文本)颜色:梯形渐变*/ 

4.3 内边距

1 padding: 4px;                      /* 文字边距 */  
2 padding-left: 5px;                 /* 文字左边距 */  
3 padding-right: 10px;               /* 文字右边距 */  
4 padding-top: 3px;                  /* 文字顶边距 */  
5 padding-bottom: 3px;               /* 文字底边距 */

4.4 外边距

1 margin: 14px 18px 20px 18px; /*外边距 顺序上右下左 */
2 margin-top: 14px;
3 margin-right: 18px;
4 margin-bottom: 20px;
5 margin-left: 18px;

4.5 背景

1 background-color: #202122;               /* 背景颜色 */  
2 background-color: qlineargradient();    /* 背景颜色:线性渐变*/ 
3 background-color: qradialgradient();    /* 背景颜色:辐射渐变*/
4 background-color: qconicalgradient();   /* 背景颜色:梯形渐变*/ 
5 background-image:url(boder.png);        /* 背景图片 */  
6 background-position: ;                 /* 背景图片对齐方式 */  
7 background-repeat: ;                   /* 背景图片平铺方式 */ 

4.6 边框
border-style: dotted;(点线) dashed;(虚线) solid; double;(双线) groove;(槽线) ridge;(脊状) inset;(凹陷) outset;

border-width:; 边框宽度

border-color:#;

简写方法border:width style color; /*简写*/

border: 1px solid #FDBC03;                       /* 边框:宽度 颜色*/  
border-image:url(boder.png) 4 8 12 16;           /* 边界图 切线 */  
border-radius: 4px;                              /* 角弧度 */  
border-top-left-radius: ;                        /* 角弧度:左上角*/ 
border-top-right-radius: ;                       /* 角弧度:右上角*/ 
border-bottom-left-radius: ;                     /* 角弧度:左下角*/  
border-bottom-right-radius: ;                    /* 角弧度:右下角*/

4.7 宽高

1 width:12px;   /*设置宽度 单位像素*/
2 height:40px     /*设置高度*/
3 min-width:65px;     /*最小宽度 设置width无效可以尝试设置min-width */                      
4 min-height:12px;    /*最小高度*/                       
5 max-width:12px;
6 max-height:12px;

五:QSS伪状态与子控件

伪状态列表

 1 :checked                        /*button部件被选中*/ 
 2 :unchecked                      /*button部件未被选中*/ 
 3 :disabled                       /*部件被禁用*/ 
 4 :enabled                        /*部件被启用*/ 
 5 :focus                          /*部件获得焦点*/ 
 6 :hover                          /*鼠标位于部件上*/ 
 7 :indeterminate                  /*checkbox或radiobutton被部分选中*/ 
 8 :off                            /*部件可以切换,且处于off状态*/ 
 9 :on                             /*部件可以切换,且处于on状态*/ 
10 :pressed                        /*部件被鼠标按下*/

子部件列表

 1 ::down-arrow         /*combo box或spin box的下拉箭头*/ 
 2 ::drop-down          /*combo box的下拉箭头*/ 
 3  
 4 ::indicator      /*checkbox、radio button或可选择group box的指示器*/ 
 5 ::item               /*menu、menu bar或status bar的子项目*/ 
 6 ::menu-indicator     /*push button的菜单指示器*/ 
 7 ::title              /*group box的标题*/ 
 8  
 9 ::down-button        /*spin box的向下按钮*/
10 ::up-arrow           /*spin box的向上箭头*/ 
11 ::up-button          /*spin box的向上按钮*/ 

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt QSSQt Style Sheets)是一种用于美化Qt界面的机制。它允许开发者使用类似于CSS(层叠样式表)的语法来定义Qt应用程序的外观和样式。 通过使用Qt QSS,可以轻松地自定义Qt界面的外观,使其与应用程序的风格和需求保持一致。开发者可以使用CSS中的各种选择器和属性来选择并修改Qt控件的样式,从而实现个性化的界面美化Qt QSS具有以下优势: 1. 灵活性:Qt QSS支持多种选择器和属性,可以选择性地修改特定的控件或整个窗口的样式。开发者可以根据不同的需求和设计要求自由选择和修改样式。 2. 可维护性:通过将美化代码与应用程序的逻辑代码分离,开发者可以更轻松地维护和更新应用程序的外观。当需要改变界面风格时,只需修改QSS文件而无需修改应用程序的源代码。 3. 高效性:Qt QSS使用内置的样式缓存机制,可以提高应用程序的运行效率。一旦生成样式缓存,后续的样式修改将只涉及到缓存而无需重新计算。 4. 跨平台性:Qt QSS可以在不同的平台上使用,保证了应用程序在不同操作系统上的一致性。无论是在Windows、Mac还是Linux上运行,界面的外观都可以保持统一。 总结来说,Qt QSS是一种简便有效的方式来美化Qt界面。它的灵活性、可维护性、高效性和跨平台性使得开发者能够轻松地实现个性化的应用程序界面,提升用户体验和应用形象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值