Qt中样式表常用的属性名称定义

news2024/11/22 21:53:29

Qt中,用好样式表,不但可以做出意想不到的酷炫效果,有时候也能减轻开发量,可能由于你不了解某些样式使用,想破脑袋通过代码实现的效果,反倒不如别人用样式,一两句样式脚本就搞定。
Qt中,样式操作使用QSS语言,QSS是用于描述图形用户界面(GUI)样式的语言,可以让开发者为应用程序的控件定义视觉外观,如颜色、字体、尺寸和布局等。QSS主要目的是提供一种简洁而灵活的方式来美化应用程序的界面,使其具有一致的外观和风格。通过使用QSS,开发者可以分离界面的样式和功能代码,从而更容易维护和定制界面的外观。QSS样式表通常以.qss文件的形式保存,包含了一系列的样式规则,这些规则使用选择器来指定要应用样式的控件及对应的样式属性和值,QSS样式来自仿css模式(大部分通用的,但有些是不支持的,或者没有定义的),如果需要全面学习样式设置,可以专门研究下CSS。
一.先说样式:
盒子模型

按照盒子模型,了解Box样式各个属性
1 Box样式
width:宽度
height:高度
max-width:最大宽度
max-height:最大高度
min-width:最小宽度
min-height:最小高度
margin:边距尺寸
margin-left:左边距
margin-top:顶部边距
margin-right:右边距
margin-bottom:底部边距
padding:填充尺寸
padding-left:左侧填充间距
padding-top:顶部填充间距
padding-right:右侧填充间距
padding-bottom:底部填充间距
2 位置样式
position:定位属性
如果 position 是 relative(默认值),则将子控件移动一定的偏移量;如果 position 是 absolute,则指定子控件相对于父控件位置
top:顶部位置
right:右侧位置
bottom:底部位置
left:左侧位置

3 字体样式
font:字体样式
font-family:字体类型
font-size:字体大小
font-style:字体风格
font-weight:字体粗细
color:字体颜色

4文本样式
text-decoration:文本修饰
text-align:水平对齐

5 背景样式
background:背影样式
background-color:背景颜色
background-image:背景图片
background-repeat:背景重复
background-position:背景定位
background-attachment:背景固定
background-clip:设置元素的背景(背景图片或颜色)是否延伸到边框下面。

background-origin:指定背景图片 background-image 属性的原点位置的背景相对区域

background 的简写方法

/简写·这个在阅读代码中经常出现,某个属性大类放在一行,各子属性值空格分开,需要好好研究练习/
QWidget{
background:#000 url(…) repeat fixed left top;
}

6 边框样式
border:边框样式
border-top:顶部边框
border-top-color:顶部边框线的颜色
border-top-style:顶部边框线的样式,线,点,点线等等
border-top-width:顶部边框线的宽度
//以下同理,各个边框线的属性
border-right:
border-right-color
border-right-style
border-right-width
border-bottom
border-bottom-color
border-bottom-style
border-bottom-width
border-left
border-left-color
border-left-style
border-left-width
border-color:边框颜色
border-style:边框风格
border-width:边框宽度
border-image:边框图片
border-radius:元素的外边框圆角
border-top-left-radius:左上角边框弧度
border-top-right-radius:右上角边框弧度
border-bottom-right-radius:右下角边框弧度
border-bottom-left-radius:左下角边框弧度

7 颜色样式
alternate-background-color:交替行颜色
gridline-color:QTableView 中网格线的颜色
selection-color:所选文本或项目的前景色
selection-background-color:所选文本或项目的背景色

8 文本样式
//这个outline很有个性,可能有些环境下设置了看不出来,但另一个环境下,就给你冒出来,所以要搞清楚
outline:轮廓属性
outline-color:设置一个元素轮廓的颜色
outline-offset:设置 outline 与元素边缘或边框之间的间隙
outline-style:设置元素轮廓的样式
outline-radius:设置元素的轮廓圆角弧度
outline-bottom-left-radius:左下方轮廓弧度
outline-bottom-right-radius:右下方轮廓弧度
outline-top-left-radius:左上方轮廓弧度
outline-top-right-radius:右上方轮廓弧度

9 其他样式
opacity:控件的不透明度
icon-size:控件中图标的宽度和高度
image:在子控件的内容矩形中绘制的图像
image-position:在 Qt 4.3 及更高版本中,可以使用相对或绝对位置指定图像图像位置的对齐
spacing:控件中的内部间距
subcontrol-origin:父元素中子控件的原始矩形
subcontrol-position:subcontrol-origin 指定的原始矩形内子控件的对齐方式。
button-layout:QDialogButtonBox 或 QMessageBox 中按钮的布局
messagebox-text-interaction-flags:消息框中文本的交互行为
dialogbuttonbox-buttons-have-icons:QDialogButtonBox 中的按钮是否显示图标
titlebar-show-tooltips-on-buttons:是否在窗口标题栏按钮上显示工具提示
widget-animation-duration:动画应该持续多少(以毫秒为单位)。值等于零意味着将禁用动画
lineedit-password-character:该 QLineEdit 的密码字符作为 Unicode 数字
lineedit-password-mask-delay:在将 lineedit-password-character 应用于可见字符之前,QLineEdit 密码掩码延迟(以毫秒为单位)
paint-alternating-row-colors-for-empty-area:QTreeView 是否为空白区域(即没有项目的区域)绘制交替的行颜色
show-decoration-selected:控制 QListView 中的选择是覆盖整个行还是仅覆盖文本的范围

二.辅助控制器
辅助控制器是用双冒号进行指定。使用了辅助控制器的时候就自动分离出一个窗口的各个子窗口,对小窗口进行设置。不同的选择器有不同的辅助控制器,具体可查看下面这些:

::add-line 在 QScrollBar 中添加一行的按钮
::add-page:branch 在 QScrollBar 中添加页的按钮
::branch QTreeView 的分支
::chunk QProgressBar 的进度条里的块(里面的进度条可以变成一块一块的增加,而不是整体都是一种颜色)
::colse-button QDockWidget 和 QTabBar 标题栏上的关闭按钮
::corner 在 QAbstractScrollArea 两个滚动条之间的位置
::drwn-arrow QComboBox、QHeaderView (排序时需要)、QScrollBar、QSpinBox 的向下箭头
::up-button QScrollBar、QSpinBox 的向上按钮
::down-button QScrollBar、QSpinBox 的向下按钮
::drop-down QComboBox 展开时
::float-button QDockWidget 标题栏上的浮动按钮
:groove Qslider的槽
:indicator QAbstractitemView、QCheckBox、QRadioButton、可点击的 QMenu 的 item、可点击的 QGroupBox 的指示符
::handle QScrollBar、QSplitter、QSlider 的滑块
::icon QAbstractitemView 和 QMenu 的图标
::item QAbstractitemView、QMenuBar、QMenu、QStatusBar 的单独的一项
::left-arrow QScrollBar 的向左的箭头
::left-corner QTabWidget 的左侧
::menu-arrow 菜单里 QToolButton 箭头
::menu-button 工具栏上的按钮
::menu-indicator 菜单里的 QPushButton 指示符
::right–arrow QMenu 或者是 QScrollBar 的右侧箭头
::pane QTabWidget 去掉标题的框架
::right-corner QTabWidget 的右侧
::scroller QMenu 和 QTabBar 因为界面大小布局左右调试的滚动按钮
::section QHeaderView 的表头横向和纵向
::separator QMainWindow 和 QMenu 的分离器(就是一个主窗口被分割成几个小的区域的线,QMenu 里是 item 的分离线)
::sub-line QScrollBar 内容减少方向的按钮
::sub-page QScrollBar 减少一页的按钮,在滑块与减少一行 sub-line 之间
::tab QTabBar 和 QToolBox 的一个页选项
::tab-bar 一个 QTabWidget 的 tab 按钮,设置 tabs 一般用 ::tab
::tear TabBar 的指示符
::tearoff QMenu 的指示符
::text QAbstractitemView 的内容
::title QGroupBox 和 QDockWidget 的标题
::up-arrow QHeaderView(排序时)、QScrollBar、QSpinBox 向上按钮箭头

::add-line 在 QScrollBar 中添加一行的按钮
::add-page:branch 在 QScrollBar 中添加页的按钮
::branch QTreeView 的分支
::chunk QProgressBar 的进度条里的块(里面的进度条可以变成一块一块的增加,而不是整体都是一种颜色)
::colse-button QDockWidget 和 QTabBar 标题栏上的关闭按钮
::corner 在 QAbstractScrollArea 两个滚动条之间的位置
::drwn-arrow QComboBox、QHeaderView (排序时需要)、QScrollBar、QSpinBox 的向下箭头
::up-button QScrollBar、QSpinBox 的向上按钮
::down-button QScrollBar、QSpinBox 的向下按钮
::drop-down QComboBox 展开时
::float-button QDockWidget 标题栏上的浮动按钮
:groove Qslider的槽
:indicator QAbstractitemView、QCheckBox、QRadioButton、可点击的 QMenu 的 item、可点击的 QGroupBox 的指示符
::handle QScrollBar、QSplitter、QSlider 的滑块
::icon QAbstractitemView 和 QMenu 的图标
::item QAbstractitemView、QMenuBar、QMenu、QStatusBar 的单独的一项
::left-arrow QScrollBar 的向左的箭头
::left-corner QTabWidget 的左侧
::menu-arrow 菜单里 QToolButton 箭头
::menu-button 工具栏上的按钮
::menu-indicator 菜单里的 QPushButton 指示符
::right–arrow QMenu 或者是 QScrollBar 的右侧箭头
::pane QTabWidget 去掉标题的框架
::right-corner QTabWidget 的右侧
::scroller QMenu 和 QTabBar 因为界面大小布局左右调试的滚动按钮
::section QHeaderView 的表头横向和纵向
::separator QMainWindow 和 QMenu 的分离器(就是一个主窗口被分割成几个小的区域的线,QMenu 里是 item 的分离线)
::sub-line QScrollBar 内容减少方向的按钮
::sub-page QScrollBar 减少一页的按钮,在滑块与减少一行 sub-line 之间
::tab QTabBar 和 QToolBox 的一个页选项
::tab-bar 一个 QTabWidget 的 tab 按钮,设置 tabs 一般用 ::tab
::tear TabBar 的指示符
::tearoff QMenu 的指示符
::text QAbstractitemView 的内容
::title QGroupBox 和 QDockWidget 的标题
::up-arrow QHeaderView(排序时)、QScrollBar、QSpinBox 向上按钮箭头

三.伪状态
在Qt中,伪状态是用来定义一个控件在特定条件下的外观的。比如按钮,伪状态可以用于按钮在被按下或者获得焦点,被禁用等不同状态时改变其外观。

伪状态说明如下:
:checked 按钮已选中
:unchecked 按钮未被选中
:hover 鼠标划过窗口部件时的状态
:pressed 控件被按下
:focus 窗口部件有输入焦点
:disabled 禁用窗口部件
:enabled 启用窗口部件
:indeterminate 按钮部分被选中的状态
:on 控件处于 on 状态
:off 控件处于 off 状态
:active 当前活动的窗口
:flat 没有突起的部件
:exclusive 表示按钮组设置为单选,只能选择一个的状态。例如菜单栏的选项
:non-exclusive 不能单选的,菜单来就是单选的
:default 默认的状态
:horizontal 部件是横向的。
:editabled QComboBox 可以编辑的
:edit-focus 那种可编辑的控件,比如文本框,当它正在编辑的时候,就是 QStyle: :State_HasEditFocus 状态
:no-frame 这个部件是没有 frame 的,例如 QLineEdit 和 QSpinBox
:closable items 是可以关闭的,例如 QDockWidget 有一个 QDockWidget::DockWidgetClosable 的功能
:floatable 部件是可浮动,例如 QDockWidget
:movable 这个部件可以移动,例如 QDockWidget
:closed (open 相对的)窗口位于关闭或者销毁的状态,例如QTreeView没有打开时的状态
:has-children Item有子目录的,例如 QTreeView
:has-siblings 有兄弟目录的,例如 QTreeView
:adjoins-item QTreeView 的一个 branch 存在毗邻下一个与自己不是兄弟项目的项
:first 部件的第一个,例如 QTabBar 的第一个 tab
:last 最后一个,例如 :QTabBar 的最后一个 tab
:left 位于左面,例如 QTabBar 的 tab 位于左面的那个
:bottom 在 item 的下面,例如 QTabBar 的 tab 按钮在下面
:middle 在列表中中间位置,例如 QTabBar 的 tab 不是最后一个也不是第一个的
:minimized 最小化的时候
:maximized 最大化状态
:alternate 当 QAstractitemView 的 QAstractitemView::alternatingRowColors() 的属性设置为 true 时,行之间背景颜色交替颜色变化。

四、属性的值
属性的值是属性后面跟随的一组数字、颜色或者是一个 bool 类型等这些我们称它为值,这些值决定了窗口部件的最终的展示效果。

Alignment { top | bottom | leftright | center } 表示方位
Attachment { scroll | fixed }* 背景是否跟随滚动条滚动
Background { Brush | Ur1 | Repeat | Alignment } 任意的一个代替在查找下一层(笔刷,路径,重复,方位)。
Border { Border Style l Length | Brush }* 简单的设置线的属性,长度,笔刷
Boolean 0|1 True( 1) false( 0)
Border Image none
| Url Number{4}
(stretch
| repeat) 看九宫格分割法
Border Style { dashed | dot-dash | dot-dot-dash | dotted | double | groove | inset | outset | ridge | solid | none } 用这些值绘制一个 border
Brush {Color | Gradient } 指定颜色|渐变|调色板
Color { rgb(r, g, b) | rgba(r, g, b, a) | hsv(h, s, v) | hsva(h, s, v, a) | #rrggbb | Color Name} 颜色 rgba 和 hsva 后面的参数是透明度
Font Style { normal | italic | oblique } 文字字体的格式
FontWeight { normal | bold | 100 | 200 … | 900} 文字的磅 bold 加粗
Gradient { qlineargradient | qradialgradient | qconicalgradient} 渐变器( 线性的渐变 |径向渐变( 辐射渐变) |梯形渐变) 边界的模式是左上角( 0,0), 右下角( 1,1) 参数是 从 0 到 1, 一般为实际的盒模式的坐标。 必须是升序排序
Origin { margin | border | padding | content } margin: 最外边的矩形. 可以控制两个部件之间的 空隙。 border: 为边界预留的空间。padding: 在 border 里面控制 border 与部件内容的 空间。 content: 部件窗口内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第T8周:猫狗识别

本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 ●难度:夯实基础⭐⭐ ●语言:Python3、TensorFlow2 要求: 1.了解model.train_on_batch()并运用 2.了解tqdm,并使用tqdm实现可视化进度条 拔高&#xff08…

Day11-K8S日志收集及搭建高可用的kubernetes集群实战案例

Day11-K8S日志收集及搭建高可用的kubernetes集群实战案例 0、昨日内容回顾1、日志收集1.1 K8S日志收集项目之架构图解三种方案1.2 部署ES1.3 部署kibana1.4 部署filebeat 2、监控系统2.1 部署prometheus 3、K8S二进制部署3.1 K8S二进制部署准备环境3.2 基础组件安装3.3 生成K8S…

OpenCV-Python笔记(上)

安装 全局安装 pip install opencv-python项目虚拟环境安装 # 进入项目根路径执行 .venv/bin/pip install opencv-python计算机眼中的图像 一张图片由大小比如(100*100)决定,说明存在100*100的像素点,每个像素点存在颜色通道&…

Science:学术大咖揭秘审稿内幕,你的稿件在审稿人那里经历了什么?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 同行评审是每篇论文能够顺利发表的必经之路。Science期刊采访了来自全球各领域研究人员,分享关于他们作为审稿人,为什么接受审稿、给出审稿意见的依据、…

怎么让手机ip地址变化?介绍几种实用方法

随着网络技术的发展,IP地址作为网络设备的唯一标识,其变动对于保护个人隐私、规避网络限制等方面具有重要意义。本文将介绍几种实用的方法,帮助用户实现手机IP地址的变化,并提醒注意事项。 一、连接不同的WiFi网络‌ 连接不同的W…

记一次实战中对fastjson waf的绕过

最近遇到一个fastjson的站,很明显是有fastjson漏洞的,因为type这种字符,fastjson特征很明显的字符都被过滤了 于是开始了绕过之旅,顺便来学习一下如何waf 编码绕过 去网上搜索还是有绕过waf的文章,下面来分析一手&a…

ICM20948 DMP代码详解(21)

接前一篇文章:ICM20948 DMP代码详解(20) 上一回终于解析完了inv_icm20948_read_mems_reg函数,本回回到inv_icm20948_initialize_lower_driver函数中,继续往下解析该函数接下来的内容。为了便于理解和分析,在…

[进阶]面向对象之多态(练习)

需求: //父类animal package polymorphism.Test;public abstract class Animal {private int age;private String color;public Animal() {}public Animal(int age, String color) {this.age age;this.color color;}public int getAge() {return age;}public void setAge(i…

深入理解 C 语言中的结构体 —— 原理与实践

引言 在 C 语言中,结构体是一种非常强大的数据类型,用于组织不同类型的数据成员。通过结构体,我们可以创建复杂的数据结构,用于表示现实生活中的对象。本文将详细介绍 C 语言中结构体的基本概念、语法、使用方法以及一些高级主题…

c++中的二叉搜索树

一概念: 静图展示: 动图展示: ①左子树不为空,则左子树节点值小于根节点值。 ②右子树不为空,则右子树节点值大于根节点值。 ③左右子树均为二叉搜索树。 ④对于它可以插入相等的也可以插入不相等的,这里如果插入的…

MATLAB系列02:MATLAB基础

MATLAB系列02:MATLAB基础 2. MATLAB基础2.1 变量和数组2.2 MATLAB变量的初始化2.2.1 用赋值语句初始化变量2.2.2 用捷径表达式赋值2.2.3 使用内置函数来初始化2.2.4 使用关键字input来初始化 2.3 多维数组2.3.1 创建多维数组2.3.2 多维数组在内存中的存储2.3.3 用单…

深入理解FastAPI中的root_path:提升API部署灵活性的关键配置

在Web开发领域,FastAPI因其高性能、易于使用和类型提示功能而备受开发者喜爱。然而,当涉及到在生产环境中部署FastAPI应用程序时,我们常常需要面对一些挑战,比如如何正确处理代理服务器添加的路径前缀。这时,root_path…

关于java同步调用多个接口并返回数据

在现代软件开发中,应用程序经常需要与多个远程API接口进行交互以获取数据。Java作为一种流行的编程语言,提供了多种方式来实现这一需求。本文将探讨如何在Java中同步调用多个API接口,并有效地处理和返回数据。 同步调用的必要性 在某些场景下…

vue table id一样的列合并

合并场景:如果id一样,则主表列合并,子表列不做合并,可实现单行、多行合并,亲测!!! 展示效果如图示: 组件代码: // table组件 :span-method"objectSpa…

网络安全 DVWA通关指南 DVWA SQL Injection (Blind SQL盲注)

DVWA SQL Injection (Blind) 文章目录 DVWA SQL Injection (Blind)Low布尔盲注时间盲注sqlmap MediumHighImpossible 参考文献 WEB 安全靶场通关指南 Low 0、分析网页源代码 <?phpif( isset( $_GET[ Submit ] ) ) {// Get input$id $_GET[ id ];// Check database$geti…

基于spring boot的车辆故障综合服务平台设计与实现----附源码 73314

摘 要 近年来&#xff0c;随着社会科技的不断发展&#xff0c;人们的生活方方面面进入了信息化时代。计算机的普及&#xff0c;使得我们的生活更加丰富多彩。本论文基于Spring Boot框架&#xff0c;设计并实现了一个车辆故障综合服务平台&#xff0c;旨在提供便捷、高效的汽车…

c++类模板为什么不能编译到动态库中来使用

在使用c的时候&#xff0c;我们习惯于将类的定义声明在头文件中&#xff0c;即.h文件&#xff1b;将类函数的实现定义在源文件中&#xff0c;即.cpp文件。如果我们要提供的是一个动态库&#xff0c;那么这种方式更常用&#xff0c;使用动态库的时候&#xff0c;包含头文件&…

如何注册Liberty大学并获取Perplexity Pro

俗称白嫖 Perplexity Pro 会员 如何注册Liberty大学并获取Perplexity Pro 1. 访问官网 首先&#xff0c;进入Liberty大学官网 https://www.liberty.edu&#xff0c;点击“Apply”按钮。 2. 选择课程 选择“Online”课程&#xff0c;选择“Certificate”&#xff0c;然后随便…

深入理解Docke工作原理:UnionFS文件系统详解

在容器技术的世界中&#xff0c;文件系统的设计和实现是其关键组成部分&#xff0c;影响着镜像的构建效率、容器的启动速度以及资源的利用率。**UnionFS&#xff08;联合文件系统&#xff09;**作为Docker的核心文件系统技术&#xff0c;通过其独特的分层结构和写时复制&#x…

5 - ZYNQ SDK学习记录(2)

文章目录 1 Vivado工程基本设计2 Vivado工程位置不变2.1 修改设计1 - 增加PS侧QSPI外设2.2 修改设计2 - 增加PL侧AXI GPIO外设2.3 总结 3 Vivado工程位置变动3.1 先修改BD后打开SDK3.2 先打开SDK后修改BD3.3 总结 1 Vivado工程基本设计 Step 1&#xff1a; Vivado版本Vivado …