QSS设置


官方文档:Qt Style Sheets Reference
优点:可以快速方便的对Ui界面的样式做更改;
缺点:对于高分屏优化比较差,会造成模糊,大小不一致等问题;可是重写QStyle解决该问题,QStyle能更开放房的个性化定制,实现更加高级的功能;

全局加载方法 将.qss文件加入资源文件 main.cpp 中加入
示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <QtWidgets/QApplication>
#include <QFile>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 加载qss文件
QFile qssFlie(":/Default.qss");
if (qssFlie.open(QIODevice::ReadOnly))
{
QString style = qssFlie.readAll();
a->setStyleSheet(style);
qssFlie.close();
}

w.show();
return a.exec();
}

单个控件设置方法:
示例:

1
2
3
QPushButton* but = new QPushButton(this);
but->setStyleSheet("QPushButton{background-color: transparent;padding:5px,5px,5px,5px;text-align:left;}QPushButton:hover{border-bottom:2px solid #079a18;border-radius:0px; }QPushButton:pressed{border-bottom:2px solid #5c940d;}");

QSS基本属性设置

Qss的强大在于组合功能的强大,这里只是简单介绍基本功能,将简单功能组合起来才能实现好看的效果。

QSS背景属性(Background)

属性

描述

CSS

background

在一个声明中设置所有的背景属性

1

background-attachment

设置背景图像是否固定或者随着页面的其余部分滚动。

1

background-color

设置元素的背景颜色。

1

background-image

设置元素的背景图像。

1

background-position

设置背景图像的开始位置。

1

background-repeat

设置是否及如何重复背景图像。

1

background-clip

规定背景的绘制区域。

3

background-origin

规定背景图片的定位区域。

3

background-size

规定背景图片的尺寸。

3

QSS边框属性(Border和 Outline)

属性

描述

CSS

border

在一个声明中设置所有的边框属性

1

border-bottom

在一个声明中设置所有的下边框属性

1

border-bottom-color

设置下边框的颜色。

2

border-bottom-style

设置下边框的样式。

2

border-bottom-width

设置下边框的宽度。

1

border-color

设置四条边框的颜色。

1

border-left

在一个声明中设置所有的左边框属性

1

border-left-color

设置左边框的颜色。

2

border-left-style

设置左边框的样式。

2

border-left-width

设置左边框的宽度。

1

border-right

在一个声明中设置所有的右边框属性

1

border-right-color

设置右边框的颜色。

2

border-right-style

设置右边框的样式。

2

border-right-width

设置右边框的宽度。

1

border-style

设置四条边框的样式。

1

border-top

在一个声明中设置所有的上边框属性

1

border-top-color

设置上边框的颜色。

2

border-top-style

设置上边框的样式。

2

border-top-width

设置上边框的宽度。

1

border-width

设置四条边框的宽度。

1

outline

在一个声明中设置所有的轮廓属性

2

outline-color

设置轮廓的颜色。

2

outline-style

设置轮廓的样式。

2

outline-width

设置轮廓的宽度。

2

border-bottom-left-radius

定义边框左下角的形状。

3

border-bottom-right-radius

定义边框右下角的形状。

3

border-image

简写属性,设置所有 border-image-属性*

3

border-image-outset

规定边框图像区域超出边框的量。

3

border-image-repeat

图像边框是否应平铺(repeated)、铺满(rounded)或拉伸(stretched)。

3

border-image-slice

规定图像边框的向内偏移。

3

border-image-source

规定用作边框的图片。

3

border-image-width

规定图片边框的宽度。

3

border-radius

简写属性,设置所有四个 border-属性*-radius

3

border-top-left-radius

定义边框左上角的形状。

3

border-top-right-radius

定义边框右下角的形状。

3

box-shadow

向方框添加一个或多个阴影。

3

Box属性

属性

描述

CSS

overflow-x

如果内容溢出了元素内容区域,是否对内容的左/右边缘进行裁剪。

3

overflow-y

如果内容溢出了元素内容区域,是否对内容的上/下边缘进行裁剪。

3

overflow-style

规定溢出元素的首选滚动方法。

3

rotation

围绕由 rotation-point 属性定义的点对元素进行旋转。

3

rotation-point

定义距离上左边框边缘的偏移点。

3

QSS字体属性(Font)

属性

描述

CSS

font

在一个声明中设置所有字体属性

1

font-family

规定文本的字体系列。

1

font-size

规定文本的字体尺寸。

1

font-size-adjust

为元素规定 aspect 值。

2

font-stretch

收缩或拉伸当前的字体系列。

2

font-style

规定文本的字体样式。

1

font-variant

规定是否以小型大写字母的字体显示文本。

1

font-weight

规定字体的粗细。

1

QSS外边距属性(Margin)

属性

描述

CSS

margin

在一个声明中设置所有外边距属性

1

margin-bottom

设置元素的下外边距。

1

margin-left

设置元素的左外边距。

1

margin-right

设置元素的右外边距。

1

margin-top

设置元素的上外边距。

1

QSS内边距属性(Padding)

属性

描述

CSS

padding

在一个声明中设置所有内边距属性

1

padding-bottom

设置元素的下内边距。

1

padding-left

设置元素的左内边距。

1

padding-right

设置元素的右内边距。

1

padding-top

设置元素的上内边距。

1

CSS定位属性(Positioning)

属性

描述

CSS

bottom

设置定位元素下外边距边界与其包含块下边界之间的偏移。

2

clear

规定元素的哪一侧不允许其他浮动元素。

1

clip

剪裁绝对定位元素。

2

cursor

规定要显示的光标的类型(形状)。

2

display

规定元素应该生成的框的类型。

1

float

规定框是否应该浮动。

1

left

设置定位元素左外边距边界与其包含块左边界之间的偏移。

2

overflow

规定当内容溢出元素框时发生的事情。

2

position

规定元素的定位类型。

2

right

设置定位元素右外边距边界与其包含块右边界之间的偏移。

2

top

设置定位元素的上外边距边界与其包含块上边界之间的偏移。

2

vertical-align

设置元素的垂直对齐方式。

1

visibility

规定元素是否可见。

2

z-index

设置元素的堆叠顺序。

2

QSS文本属性(Text)

属性

描述

CSS

color

设置文本的颜色。

1

direction

规定文本的方向 / 书写方向。

2

letter-spacing

设置字符间距。

1

line-height

设置行高。

1

text-align

规定文本的水平对齐方式。

1

text-decoration

规定添加到文本的装饰效果。

1

text-indent

规定文本块首行的缩进。

1

text-shadow

规定添加到文本的阴影效果。

2

text-transform

控制文本的大小写。

1

unicode-bidi

设置文本方向。

2

white-space

规定如何处理元素中的空白。

1

word-spacing

设置单词间距。

1

hanging-punctuation

规定标点字符是否位于线框之外。

3

punctuation-trim

规定是否对标点字符进行修剪。

3

text-align-last

设置如何对齐最后一行或紧挨着强制换行符之前的行。

3

text-emphasis

向元素的文本应用重点标记以及重点标记的前景色。

3

text-justify

规定当 text-align 设置为 "justify" 时所使用的对齐方法。

3

text-outline

规定文本的轮廓。

3

text-overflow

规定当文本溢出包含元素时发生的事情。

3

text-shadow

向文本添加阴影。

3

text-wrap

规定文本的换行规则。

3

word-break

规定非中日韩文本的换行规则。

3

word-wrap

允许对长的不可分割的单词进行分割并换行到下一行。

3

常见控件的QSS用法:

QPushButton
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*默认状态*/
QPushButton{
background-color: transparent; /*背景颜色*/
padding:5px,5px,5px,5px;/*上右下左,设置控件的内边距*/
text-align:left;/*文字对齐方式*/
}
/*鼠标悬浮*/
QPushButton:hover{
border-bottom:2px solid #079a18;/*底部边框粗细以及颜色设置*/
border-radius:0px;/*边框圆角设置*/
}
/*鼠标按压*/
QPushButton:pressed{
border-bottom:2px solid #5c940d;
}