QSS属性大全

article/2025/9/28 23:28:49

1、选择器

1.1、通用选择器
/*
格式:* { 属性: 值; }
通用选择器一般用来给应用程序设置统一的字体,大小,颜色等
*/
* {font-family: "Microsoft YaHei";outline: 0px;color: #DCDCDC;
}
1.2、类型选择器
/* 格式: 类名 { 属性: 值; } */
/* 类名即 Widget 类名, 由 QObject :: metaObject() :: className()获取, 类型选择器匹配所有该类以及该类的派生类的对象 */
QPushButton {color: blue;
}
/* 程序中所有的 QPushButton 类和它的派生类的对象, 它们的前景色(即文字颜色)被设置为蓝色 */
/* 一般用于为控件做统一初始化 */
/*
注意点:
当自定义控件在命名空间之中(或它是一个嵌套类),QObject::className()会返回(::),与子控件选择器
相冲突当为命名空间中 widget 使用类型选择器时, 我们必须将” :: ”替换成” -- ”
*/
namespace ns {class MyPushButton : public QPushButton {}
}qApp->setStyleSheet("ns--MyPushButton { background: yellow; }");
1.3、类选择器
/* 格式:.类名 { 属性: 值; } */
/* 类名与类型选择器中的类名一样,前面的.表示只匹配该类的所有对象,而不匹配其派生类对象 */
.QPushButton {color: blue;
}/* 比如当用QFrame做容器时可以用它来只对QFrame做样式,而不对其派生类(QLabel, QAbstractScrollArea 等等)生效 */
1.4、ID 选择器
/* 格式:#id{ 属性: 值; } */
/*  id 指的是 objectName, 每个 QObject 类及其派生类都有的一个属性 */
#button {color: red;
}/* 一般用于特殊控件,比如登录按钮等 */
/*
注意点:1. objectName 是大小写敏感的.2. “#”与 ID 之间不可以有空格3. 由于 objectName 是所有 QObject 类对象的一个属性, 在运行过程中可以改变, 所以一般情况下, 要使用 ID 选择器时, 保证 objectName 不要在运行时被改变, 否则重新加载stylesheet 文件时, 对应的 ID 选择器将不会匹配到原来的控件.4. 由于 objectName 允许字符串中含有空格, 但是 ID 选择器中, ID 是从紧跟#后的第一个字符开始直到遇到空格或“{”之间的字符串, 因此, 如果是为了使用 ID 选择器而设置objectName, 则 objectName 中不能含有空格5. 由于任何对象的 objectName 都可以出现重复, 因此在设置 objectName 时, 尽量保持其唯一性6. Qt 官方给出的 ID 选择器的格式为:类名#id{ 属性: 值; }但实际上不加类名也是可以的(加了类名的 ID 选择器在 CSS 中被称为交集选择器),在正式开发中, 还是建议加上类名, 因为这样可以看出这个 id 选择器所匹配的对象的类型,有利于提高阅读性.
*/
1.5、后代选择器
/* 格式:选择器 1 选择器 2{ 属性: 值; } */
/* 在选择器 1 匹配的所有对象中, 找到选择器 2 所匹配的所有后代对象 */
/*
注意点:
注意点:1. 后代选择器必须用空格隔开每个选择器2. 后代选择器可以通过空格一直延续下去, 例如:选择器 1 选择器 2 选择器 3 … 选择器 N{ 属性: 值; }3. 顾名思义, 后代选择器不仅包含”儿子”, 还包含”孙子”, “重孙子”等, 一般来说, 只要 B 控件显示在 A 控件上, 那么 B 控件就是 A 控件的后代.4. 后代选择器不仅可以使用类型选择器, 还可以使用类选择器, id 选择器等.5. Qt 中, 各控件的父子关系:通过简单的验证, 各控件的父子关系并非我们在创建对象时所指定的那样, 实际父子关系取决于如何布局. 
*//*
用途:对多个相似对话框中的一个按钮进行样式修改时可以选择后代选择器
*/
BaseDialog QPushButton{min-width: 120px;min-height: 40px;max-width: 120px;max-height: 40px;font-size: 20px;padding: 0px;
}
1.6、子元素选择器
/* 格式:选择器 1 >选择器 2 { 属性: 值; } */
/* 子元素选择器表示找到指定选择器所匹配的对象中的所有特定直接子元素然后设置属性,
即找到选择器 1 匹配到的对象中的被选择器 2 匹配到的直接子元素然后设置属性 *//*
注意点1. 子元素选择器必须用”>”连接, “>”两边有没有空格都可以, 但是不建议写空格, 因为会与后代选择器的连接符混淆.2. 子元素选择器只会查找”儿子”, 不会查找其他后代.3. 子元素选择器不仅可以使用类型选择器, 还可以使用类选择器,id 等选择器4. 子元素选择器不能通过”>”一直延续下去, 只能有一个”>”5. 由于 Qt 中有继承关系的 Widgets 较多, 在使用子元素选择器时, 请特别注意继承关系,比如我只想选中 QGroupBox 中的 QPushButton, 那么我即可以写成QWidget >QPushButton{color: red;} o1也可以写成QGroupBox>QPushButton{color: red;} o2这是因为 QGroupBox 是 QWidget 的派生类, 类型选择器 QWidget 会选中所有它的派生类对象,这些对象中包括 QGroupBox, 因此写法o1 会将所有的 QPushButton 的前景色设置为红色.鉴于此种情况, 我推荐在使用子元素选择器时, 使用类选择器替代类型选择器
*//* 例如我想给直接布局在 QGroupBox 的QCheckBox 设置一些特定属性 */
.QGroupBox > .QCheckBox {color: blue;
}
1.7、属性选择器
/*
格式:[attribute=value]{ 属性: 值; }[attribute|=value]{ 属性:值; }[attribute~=value]{ 属性:值; }attribute=value 表示匹配有特定属性 attribute, 并且值为 value 的所有控件, 然后设置样式;
attribute|=value 表示匹配有特定属性 attribute, 并且值以 value 开头的所有控件, 然后设置样式;
attribute~=value 表示匹配有特定属性 attribute, 并且值包含 value 的所有控件, 然后设置样式;
*//*
注意点
1. attribute|=value 表示 attribute 属性的值以 value 开头, 无论 value 后面还有没有值, 或者
value 后面是什么, 均能匹配到
*/[objectName|="button"]{color: red;
}
/* 这表示将 objectName 属性以 button 开头的所有控件的前景色设置为红色 *//* attribute~=value 表示 attribute 属性的值中包含 value, 这里要注意的是:value 必须是独
立的单词, 也就是包含 value 并且 value 是被空格隔开的 */
1.8、并集选择器
/* 格式:选择器 1,选择器 2,选择器 3{ 属性: 值; } */.QLineEdit, .QComboBox{border: 1px solid gray;background-color:white;
}
1.9、子控件选择器
/*
格式:类型选择器::子控件{ 属性: 值; }类选择器::子控件{ 属性: 值; }
*//* QComboBox 的 drop-down 部分 */
QComboBox::down-arrow{image: url(:/res/arrowdown.png);
}
QComboBox::down-arrow:pressed {position: relative;top: 1px; left: 1px;
}
1.10、伪类选择器
/*
格式:类型选择器:状态{ 属性: 值; }类选择器:状态{ 属性: 值; }冒号两边不可有空格
*/QPushButton:hover { color: white }
/* 伪状态可以使用感叹号进行取反 */
QRadioButton:!hover { color: red }
/* 伪状态可以链接,在这样的情况下,隐式地包含了逻辑与 */
QCheckBox:hover:checked { color: white }
/* 上面表示在鼠标悬浮到一个已 check 的 QCheckBox 上时生效 *//* 支持并集选择器及子控件选择器 */
QCheckBox:hover, QCheckBox:checked { color: white }
QComboBox::drop-down:hover { image: url(dropdown_bright.png) }

2、属性

2.1、背景属性 background

连写格式:background: color image repeat position;

背景共有 7 个属性, 既可以每个属性单独设置, 也可以连写
background-color
  设置控件的背景颜色, 默认是 border 之内的矩形区域, 包括内边距和内容矩形
background-image
  格式是 url(filename), filename 是一个本地文件路径或 Qt 资源文件路径, 不支持网络图片;
  设置控件的背景图片. 可以与背景颜色共存, 背景图片会覆盖背景颜色
background-repeat
  repeat-x: 在水平方向上平铺
  repeat-y: 在垂直方向上平铺
  repeat: 在水平和垂直方向上都平铺, 这是默认值(但是 Qt 好像有 bug, 设置了 repeat 反
  而不会平铺, 不设置才平铺)
  no-repeat: 不平铺
  作用: 设置背景图片的平铺方式.

在这里插入图片描述

background-position
  top: 向上对齐   left: 向左对齐
  bottom: 向下对齐   right:向右对齐
  center: 居中
  格式:background-position: 水平对齐方式 垂直对齐方式;
background-attachment
  scroll : 滚动, 这是默认值
  fixed: 固定
  设置背景图片在带滚动条的控件(QAbstractScrollArea)中是固定在一个位置还是随着滚动条滚动.
background-clip
  margin: 外边距矩形
  border: 边框矩形
  padding: 内边距矩形
  content: 内容矩形
  设置背景颜色覆盖的区域, 默认情况下背景只覆盖内边距矩形, 如果没有指定, 默认值为 border
background-origin
  margin: 外边距矩形
  border: 边框矩形
  padding: 内边距矩形
  content: 内容矩形
  与 background-position 和 background-image 一起使用, 指明背景图片的覆盖范围矩形,如果没有指定, 默认为 padding

2.2、前景色 color

color 设置的前景色, 也就是控件文字的颜色, color 属性是被所有 widget 都支持的

2.3、边框属性 border

连写格式:border: width style color;
border-width
  像素宽度, 数值后面一定要加上像素单位 px
border-style
  取值: dashed,dot-dash,dot-dot-dash,dotted,double,groove,inset,outset,ridge,solid,none
  设置边框的渲染样式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
border-color
  设置边框的颜色
border-radius
  取值: 水平半径 垂直半径;均是以像素为单位, 值必须带 px, 第二个值是可选的,
  如果只有一个值, 表示同时水平半径和垂直半径
border-image
  格式:border-image: border-image-source border-image-slice border-image-repeat
  border-image-source: 图片路径
  border-image-slice: 图片切片, 单位只能是像素值, 因此数值不必带单位 px
  border-image-repeat:指定边框图片的四条边和四个角的平铺方式。
    有三种取值, 分别为 stretch(默认), round(均分平铺), repeat(平铺).
  stretch 表示拉伸四条边相应的切片图片,来填补边框的间隙.
  round 是把四个角和四条边分成均等区域然后用背景图片切好能铺满整个边框空隙, 不能多也不能少
  repeat 是做直接复制填满空隙
单些格式:
  border-top-width border-top-style border-top-color
  border-right-width border- right -style border- right -color
  border-bottom-width border- bottom -style border- bottom -color
  border-left-width border- left -style border- left -color

2.4、字体属性 font

连写格式:font: style weight size family
font-style
  设置字体风格。normal: 正常,italic: 斜体,oblique: 倾斜的字体
  Italic 是使用文字的斜体,Oblique 是让没有斜体属性的文字倾斜
  一些不常用的字体,或许就只有个正常体,如果你用 Italic,就没有效果了,这时候就要用 Oblique
font-weight
  设置文字的粗细;三种方式:normal: 正常粗细、bold: 加粗、数值(数越大字越粗)
font-size
  设置字体大小。单位有px,pt,px常用
font-family
设置字体样式。(QSS 中 font-family 只能指定一种字体)
  微软雅黑: Microsoft YaHei
  宋体:SimSun
  黑体:SimHei
  仿宋: FangSong
  楷体: KaiTi
  隶书:LiSu
  幼圆:YouYuan
  华文细黑:STXihei
  华文楷体:STKaiti
  华文宋体:STSong
  华文中宋:STZhongsong
  华文仿宋:STFangsong
  方正舒体:FZShuTi
  方正姚体:FZYaoti
  华文彩云:STCaiyun
  华文琥珀:STHupo
  华文隶书:STLiti
  华文行楷:STXingkai
  华文新魏:STXinwei

2.5、文本属性

text-align
  设置文本的对齐方式。top, bottom, left, right, center
  格式:text-align: 水平对齐方式 垂直对齐方式;
  支持这个属性的控件目前只有 QPushButton 和 QProgressBar
text-decoration
  给文本添加装饰。none: 没有装饰;underline: 下划线;overline: 上划线;line-through: 删除线
padding
  padding: 上 右 下 左;
  padding-top: ?px;
  padding-right: ?px;
  padding-bottom: ?px;
  padding-left: ?px;
margin
  与padding一致
width, height
  这两个属性设置的是盒子内容的宽高.
  这两个属性只对子控件选择器选中的对象有效
  这两个属性的取值均是像素值, 即数字加像素单位 px
outline
控件有焦点时, 绘制在边框边缘的外围,可起到突出作用
  outline
  outline-color
  outline-offset
  outline-style
  outline-radius
  outline-bottom-left-radius
  outline-bottom-right-radius
  outline-top-left-radius
  outline-top-right-radius

2.6、渐变 Gradient

附录

1、伪态列表
伪态描述
:active当小部件位于活动窗口中。
:adjoins-item当QTreeView的子控件::branch与物体相邻时
:alternate
:bottom项目位于底部
:checked被选中状态时
:closable可关闭状态时
:closed关闭状态时
:default默认状态
:disabled不可使用状态
:editable可编辑态时
:edit-focus拥有可编辑焦点时
:enabled可用状态时
:exclusive
:first为第一个时。例如QTabBar的第一个选项卡
:flat当为flat态时
:floatable可浮动态时
:focus拥有输入焦点时
:has-children拥有子物体时
:has-siblings
:horizontal具有水平方向时
:hover悬停在此控件上时
:indeterminate拥有不确定态时
:last最后一项
:left位置位于左侧时
:maximized最大化态时
:middle在中间时
:minimized最小化时
:movable可移动态时
:no-frame无边框态时
:non-exclusive
:off对于可以切换的控件,处于关闭状态时
:on对于可切换的控件,处于打开状态时
:only-one
:open打开状态时,例如QComboBox具有一个可打开的菜单
:next-selected
:pressed当被鼠标按时,可当做clicked事件
:previous-selected
:read-only
:right
:selected被选择态
:top
:unchecked未被选中态
:vertical
:window
2、子控件列表
子控件描述
::add-line用于添加QScrollBar行的按钮
::add-page手柄(滑块)和QScrollBar的add-line之间的区域
::branchQTreeView的分支指示器
::chunkQProgressBar的进度块
::close-buttonQDockWidget或QTabBar选项卡的关闭按钮
::cornerQAbstractScrollArea中两个滚动条之间的角
::down-arrowQComboBox、QHeaderView、QScrollBar或QSpinBox的向下箭头
::down-buttonQScrollBar或QSpinBox的向下按钮
::drop-downQComboBox的下拉按钮
::float-buttonQDockWidget的浮动按钮
::grooveQSlider的凹槽
::indicatorQAbstractItemView、QCheckBox、QRadioButton、可检查QMenu项或可检查QGroupBox的指示器
::handleQScrollBar、QSplitter或QSlider的滑块
::iconQAbstractItemView或QMenu的图标
::itemQAbstractItemView、QMenuBar、QMenu或QStatusBar的项
::left-arrowQScrollBar的左箭头
::left-cornerQTabWidget的左角。例如,此控件可用于控制QTabWidget中左角小部件的位置
::menu-arrow带有菜单的QTool按钮的箭头
::menu-buttonQToolButton的菜单按钮
::menu-indicatorQPushButton的菜单指示器
::right-arrowQMenu或QScrollBar的右箭头
::paneQTabWidget的窗格
::right-cornerQTabWidget的右角
::scrollerQMenu或QTabBar的滚动条
::sectionQHeaderView的部分
::separatorQMenu或QMainWindow中的分隔符
::sub-line用于减去QScrollBar的一行的按钮
::sub-page手柄和QScrollBar的sub-line之间的区域
::tabQTabBar或QToolBox的选项卡
::tab-barQTabWidget的选项卡栏
::tearQTabBar的指示器
::tearoffQMenu的指示器
::textQAbstractItemView的文本
::titleQGroupBox或QDockWidget的标题
::up-arrowQHeaderView、QScrollBar或QSpinBox的向上箭头
::up-buttonQSpinBox的向上按钮

http://chatgpt.dhexx.cn/article/ipjielD8.shtml

相关文章

Qt之QSS使用与基本语法

一、QSS介绍 QSS是一种从CSS借鉴过来的机制,用来实现对控件外观的自定义。但是它比CSS功能要弱化一些,有一些属性和选择器,QSS并没有。 Qt中的各个控件可以使用QSS来实现界面的个性化定制、美化,使用起来也是特别方便的。 二、Q…

QTreeWidget样式qss

文章目录 QTreeWidget/QTreeView样式QHeaderView背景属性alternate-background-color:交替背景色background:背景属性background-color:控件的背景色background-image:用于控件的背景图像。如果图像有透明部分则显示透明部分。bac…

qss文件使用

每个控件提供的样式太少?只能简单的设置颜色、字体颜色、字体大小?每次设置都要输入好长一串好麻烦? 现在你只要写一段qss就能满足你的一切需求,实现效果如下 本文将从下面三个方向慢慢阐述qss的使用 1、如何使用qss 2、如何修…

QSS 基础

如果你会 CSS,那么 QSS 对你来说将会非常简单,QSS 的语法和 CSS 的愈发非常相似,但也有些不同,有些 CSS 的东西在 QSS 里被去掉了,QSS 也加了些自己特有的东西,不过大多数还是差不多的,下面以修…

Qt QSS使用

一、选择器类型 Qt QSS选择器和CSS2、CSS3的选择器类似,建议先学习或者复习一下CSS选择器的语法。QSS虽然和CSS类型,但有也稍许不同,而且支持的语法也没那么多,具体讲解如下。 1.1 类选择器 /* 匹配QPushButton的实例及其子类 …

QSS 介绍

目录 一、自定义 widget 的两种方式二、一个简单示例三、QSS 比 QPalette 强大四、使用 Qt Designer 方便查看 qss 效果 一、自定义 widget 的两种方式 自定义 widget 外观的方式有两种: 子类化 QStyle;使用 Qt Style Sheets 机制; Qt Sty…

学习QSS样式表

文章目录 一、 什么是QSS二、辅助工具三、Qt样式表设置函数:setStyleSheet四、Qss选择器1、通用选择器2、类型选择器3、类选择器4、ID选择器5、后代选择器6、子元素选择器7、属性选择器8、并集选择器9、子控件选择器10、伪类选择器11、选择器的匹配规则 五、QSS常用…

QSS自定义属性

1.基本使用 &#xff08;参见 Qt 文档页章节 Setting QObject Properties&#xff1a;https://doc.qt.io/qt-5/stylesheet-syntax.html&#xff09; 从 Qt 4.3 及更高版本开始&#xff0c;可以使用 qproperty- <属性名称> 语法设置任何 designable 的 Q_PROPERTY &…

QSS

摘自&#xff1a;https://qtdebug.com/qtbook-qss/ Qt 提供的 widget 的默认外观很多时候都不符合项目的界面需求&#xff0c;必须要改&#xff0c;修改一个 widget 的外观&#xff08;Look and Feel&#xff09;有以下的方法&#xff1a; 继承 Widget&#xff0c;然后在 pai…

QSS 语法

目录 1. 基本语法1.1 样式规则1.2 选择器、声明1.3 大小写1.4 多个选择器 2. 选择器2.1 通用选择器&#xff1a;*2.2 类型选择器&#xff1a;QPushButton2.3 属性选择器&#xff1a;QPushButton[flat"false"]2.4 类选择器&#xff1a;.QPushButton2.5 ID 选择器&…

QSS(Qt样式表)概念

Qt样式表是一个可以自定义部件外观的十分强大的机制&#xff0c;除了QStyle更改的样式&#xff0c;其他的都可以由QSS修改。由于受到Html的CSS启发&#xff0c;所以叫QSS。 代码添加样式表ui界面上添加样式表 代码添加样式表&#xff1a; setStyleSheet&#xff08;&#xff0…

【QT】QSS使用总结

文章目录 主要流程&#xff1a;导入QSS文件&#xff1a;1. 添加Qt Resource File文件&#xff0c;输入名称2. 在工程文件目录下先建一个".txt"文件&#xff0c;重新命名后缀为".qss"3. 右键添加现有文件qss.qss4. 完成添加5. 将 qss样式应用到整个工程 QSS…

01_1_Qt工程实践_Qt样式表Qss(什么是QSS;基本语法;setStyleSheet函数;样式表的属性值;利用QtCreate实现样式切换;样式表实现皮肤改变实例)

本篇介绍什么是样式表&#xff0c;讨论如何使用Qt样式表Qss修改应用程序外观&#xff0c;并通过实例进行讲解。 了解HTML的同学都知道&#xff0c;一般在HTML中我们把样式表叫做CSS&#xff0c;在Qt中我们称之为QSS。QSS和CSS并不完全等同&#xff0c;语法完全类似&#xff0c…

【QT】QSS美化——基础知识

目录 一、辅助工具 二、QSS加载方式 三、QSS选择器类型 3.1 通配选择器 3.2 类型选择器 3.3 属性选择器 3.4 类选择器 3.5 ID选择器 3.6 后代选择器 3.7 子选择器 3.8 伪类选择器 四、QSS常用属性 4.1 字体 4.2 颜色 4.3 内边距 4.4 外边距 4.5 背景 4.6 边框…

在没有QQ、微信时局域网共享文件方法

1、首先开启共享 2、将要共享文件的电脑做同样操作 查看局域网下电脑 点击要访问的电脑输入该电脑的账号密码进行登录。 3、选择要共享的文件和访问权限 在要共享文件的电脑选择要共享的文件右键-授予访问权限-家庭组 然后选特定用户-everyone即可。 之后就是在这个文件里面…

分享:我的局域网QQ Bing(必应)1.0 正式发布,包括:聊天、视频、语音、电话、截屏、文件传输 等

分享&#xff1a;我的局域网QQ Bing&#xff08;必应&#xff09;1.0 正式发布,包括&#xff1a;聊天、视频、语音、电话、截屏、文件传输 等 百万商业圈 局域网QQ Bing&#xff08;必应&#xff09;1.0 正式发布 Bing&#xff08;必应&#xff09;是一款优秀的企业局域网即时…

交换机组建局域网

说来惭愧&#xff0c;今天才搞明白用交换机组建局域网的原理&#xff0c;这里介绍方法&#xff1a; 平时使用的路由器有交换机的功能&#xff0c;单纯使用交换机还是第一次&#xff1a; 1、将所有电bai脑连到同一台交换机上&#xff0c;du即将各台电zhi脑的网线插入同一dao台交…

基于JAVA的局域网聊天软件的设计与实现(仿制QQ)

一、系统分析 1.1 问题描述 客户端 实现简易版的局域网聊天器实现富文本内容聊天智能聊天机器人群发消息传送文件等功能 服务器端 实现群发通知管理聊天线程 1.2 系统功能分析 客户端功能 登陆注册发送表情消息发送文本消息截取图片图片处理震动效果发送文件群发消息设置聊天…

通过交换机组建局域网

实现目标&#xff1a;利用交换机搭建一个局域网&#xff0c;使得该局域网下同一网段的所有机器相互通信 所需设备&#xff1a;电脑一台&#xff0c;树莓派两个&#xff0c;工控机两台&#xff0c;TP-Link交换机一台。 该教程就以一台电脑和一台树莓派搭建局域网为一个demo&am…

PHPstudy配置局域网

PHPstudy配置局域网 1.打开小皮网站&#xff08;https://www.xp.cn/download.html&#xff09;&#xff0c;下载64位PHPstudy到电脑桌面 2.解压zip文件 3.打开解压后的文件夹&#xff0c;找到.exe文件&#xff0c;直接安装 4.安装好之后&#xff0c;开启Apache、FTP和MySQL 5…