【QSS样式表 - ③】:QSS常用属性

QSS语法及常用样式 Qt样式表(以下统称QSS)的术语和语法规则几乎和CSS相同。如果你熟悉CSS,可以快速浏览以下内容。不熟悉的话可以先去W3School - CSS或者本人的CSS博客随笔简单了解一下。在讲解样式表语法前,我们先看一个例子: 上面例子是实现按钮三态效果的样式表。注:程序设置的样式表比ui文件里设置的优先级更高。QSS包含了一个样式规则,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些属性应该在部件上进行设置。例如: 上面的例子中QPushButton是选择器,{ col 阅读详情
AI摘要

本文介绍了QSS常用属性,包括字体样式、边框样式、盒子模型、背景颜色与图片、QObject属性等。详细说明了各属性的设置规则,如边框样式可分开设置各边,盒子模型由外边距、边框、内边距和内容区域组成,还给出了多个QSS示例代码。

QSS常用属性

字体样式

在这里插入图片描述
以上也可以直接写成一行:

font: 字体风格 字体粗细 字体大小 字体名称;

QSS示例

新建一个 QMainWindow 窗口程序,拖入两个QLabel控件:

在这里插入图片描述
代码:

#label {
	color: red;
	/*字体*/
	font-family: "Microsoft YaHei";
	/*字体加粗*/
	font-weight: bold;
	/*字体尺寸*/
	font-size: 24pt;
	/*字体风格*/
	font-style: italic;
}

#label_2 {
	font: italic bold 36pt "宋体";
}

在这里插入图片描述

边框样式

在这里插入图片描述
注意:只要遵守上 右 下 左的原则,都遵循以下规则。(以 border-width为例)

border-width: 2px;				表示四个边框都一样为2px
border-width: 2px 15px;			表示上下为2px,左右为15px
border-width: 2px 10px 2px;		表示上为2px,左右为10px,下为2px

每条边还可以分开设置:

  1. border-width

     border-top-width
     border-right-width
     border-bottom-width
     border-left-width
    
  2. border-style

     border-top-style
     border-right-style
     border-bottom-style
     border-left-style
    
  3. border-radius

     border-top-left-radius
     border-top-right-radius
     border-bottom-left-radius
     border-bottom-right-radius
    

也可以直接写成一行:

border: 边框宽度 风格 边框颜色;

QSS示例

新建一个 QMainWindow 窗口程序,拖入三个QLabel控件:
在这里插入图片描述
代码:

#label {
	border-width: 2px 5px 10px 15px;	 /*上 右 下 左*/
	border-color: green blue red;	/*上 左右 下*/
	border-style: dotted dashed;	/*上下 左右*/
}

#label_2 {
	border-width: 1px; /*全部为1px*/
	border-color: green yellwo; /*上下为 green 左右为red*/
	border-style: solid;	/*全部为solid*/
	border-radius: /*圆角半径*/
}

#label_3{
	border: 1px solid red; /**一行设置边框/
}

在这里插入图片描述

盒子模型

在 QSS(Qt Style Sheets)中,盒子模型是用于描述和控制界面元素(如按钮、文本框等)外观的一个重要概念。盒子模型将每个界面元素视为一个矩形框,框的各个部分可以通过不同的属性进行样式设置。盒子模型主要由四个部分组成:margin(外边距)、border(边框)、padding(内边距)和内容区域。

在这里插入图片描述

  • 简单理解,如下图所示,将一个按钮放入QFrame窗口中,黄色的部分即为 margin,按钮的边框即为 border,边框到 PushButton 内容的区域即为 padding。
    在这里插入图片描述
  • 设置了 padding-top: 20px; 即设置按钮的内容的上部分与边框的距离增加了20px。
    在这里插入图片描述
  • 设置 margin-top: 30px; 即设置按钮的上部分外边距增加了30px(可以理解为按钮的位置不变,上面被压缩了30px。
    在这里插入图片描述

在这里插入图片描述
每条边还可以分开设置

  1. margin

     margin-top
     margin-right
     margin-bottom
     margin-left
    
  2. padding

     padding-top
     padding-right
     padding-bottom
     padding-left
    

背景颜色、背景图片

background-

在这里插入图片描述
也可以直接写一行:

background: 背景颜色 背景图片 重复 图片位置;
QSS示例

新建一个 QMainWindow,拖入4个 QWidget 控件,并设置其背景为绿色:
在这里插入图片描述
代码:

#widget, #widget_2, #widget_3, #widget_4{
	background-color: green;
}

#widget{
	background-image: url(:/images/images/qss.png);
	background-position: right center; /*靠右居中*/
	background-repeat: no-repeat; /*不平铺*/
}

#widget_2{
	/*设置背景图片 xy方向平铺 居右下角*/
	background: url(:/images/images/qss.png) repeat right bottom;
}

#widget_3{
	/*设置背景图片 不平铺 居右下角*/
	background: green url(:/images/images/qss.png) no-repeat center;
}

#widget_4{
	/*图片拉伸需要用到 border-image */
	border-image: url(:/images/images/qss.png);
}

在这里插入图片描述

border-image

  • border-image 属性允许定义图像的切割、缩放和填充方式,从而实现更加丰富的视觉效果。
    在这里插入图片描述
    下面的 border-top 等为窗体的边距
    在这里插入图片描述

  • border-image 属性可以通过4条直线,将一副图像划分为九宫格
    在这里插入图片描述

QSS示例1

新建一个 QMainWindow,放入 QLabel控件:
在这里插入图片描述

如下图所示:图片的宽为171px,高为130px。
在这里插入图片描述

代码:

QLabel{
	border-image: url(:/images/images/border.png) 10;
}

在这里插入图片描述

QSS示例2

如下图所示,当拉伸 QLabel 时图片会变形:
在这里插入图片描述
可将代码设置为如下:

QLabel{
	/* 上右下左 全为40 */
	border-image: url(:/images/images/border.png) 40; /* 40相对于图片 */
	
	/* 下面四个边距是相对于窗体的 */
	border-top: 40px transparent;
	border-right: 40px transparent;
	border-bottom: 40px transparent;
	border-left: 40px transparent;
}

在这里插入图片描述

为什么这样设置后就不会变形呢?
我们的需求是要求图片的四个角都不变形。

  1. 首先 border-image: url(:/images/images/border.png) 50; 将图片进行分割,分成九块。
    在这里插入图片描述

  2. 然后,将窗体(即示例中的 QLabel)进行分割,分成九块。

     border-top: 50px transparent;
     border-right: 50px transparent;
     border-bottom: 50px transparent;
     border-left: 50px transparent;
    

    在这里插入图片描述

  3. 最后将图片的九块区域分别放到窗体(QLabel)的九块区域,从上面我们知道,分割后图片的四个角区域和窗体的四个角区域一样,因此放上去后不会有改变,而图片的其他区域比较小,窗体的其他区域比较大时,会自动拉伸填充。因此实现了四个角怎样拉伸都不被影响。

QObject属性

在QSS中设置的属性分为两种:
在这里插入图片描述
在设置QSS时,不仅可以设置标准CSS属性,也可以设置QObject定义的属性,设置QObject定义的属性需要属性名前加上 qproperty- 来标识。
在这里插入图片描述

QSS示例

代码:

QLabel {
	font-size: 20px;
	font-style: italic;
	color: white;
	background-color: blue;
	qproperty-text: "街三仔";
	qproperty-alignment: AlignCenter;
}

在这里插入图片描述

浅谈QT中qss样式表 一、前言 本人是今年毕业的一名本科生,作为码农小白,或是膜拜于代码大神、博客大佬,或是想在枯燥的工作生活中找些乐子,或是纯粹的想记录一下自己的成长历程,突然就萌发了偶尔写写博客的心思,抱有着记录一下自己在工作中或是空闲时间学习到的一些知识,可能会对一些有需要的人一些启发或是之后自己如果遇到同样的问题可以方便的去找到解决方法。作为小白,现在的目标当然就是早日成为一名小牛,好好学习,天天向上。 二、什么是qss样式表? qss样式表和css层叠样式表是差不多的东西,都是用于... 阅读详情

相关推荐

QT中使用QSS进行界面美化及很好的QSS样式表

一、使用QSS进行界面美化 在qt编辑器中选择窗口----> 改变样式表 —> 输入qss样式代码,可以控制qss对应窗口控件样式,右击 某个控件----> 改变样式表 —>输入qss样式代码,可以控制这个控件的样式。如下: 原来的界面: 加入QSS样式的界面: 二、 很好的QSS样式表 1.https://github.com/GTRONICK/QSS 2. 自...

哲学天空的博客 4万+

学习Qss--字体、文本属性

文章目录字体属性fontfont-stylefont-weightfont-sizefont-family连写格式文本属性text-aligntext-decoration 字体属性font font-style 作用:设置字体风格 取值: 取值 效果 normal 正常 italic 斜体 oblique 倾斜的字体 关于italic和oblique的区别: 他们呢都是向右倾斜的文字,大多数情况下看不出任何区别,但是原理却不一样。要高清楚这个问题,首先要明白字体是怎么回事。一

贝勒里恩的博客 2万+

「QT」QSS样式表 之 QTableWidget表格窗口类

通过QSS样式表,我们可以轻松地自定义及其单元格的外观,包括背景颜色、边框、字体、单元格间距等。这不仅可以提升用户界面的美观性,还可以增强用户体验。本文详细介绍了如何为编写QSS样式表,并提供了示例代码以供参考。如果你需要更高级的自定义,比如自定义绘制单元格或表头,你可能需要子类化或使用其他Qt绘图技术。何曾参静谧的博客。

何曾参静谧的博客 2520

QT css样式 详解

font-family:楷体;为设置字体类型,标准形式需要加双引号,不加也可能会生效,具体看系统是否支持,中英文都支持,但要保证字体编码支持,一般程序编码为"utf-8"时没问题。 font-style:normal;为设置字体斜体样式,italic 为斜体, normal 为不斜体,oblique(倾斜). font-weight:bold;为设置字体加粗样式,bold 为加粗, normal 为不加粗; font-size: 14px;设置字体大小. 注:字体同时设置时的顺序 style weight

ligare的博客 3266

「QT」QSS样式表 之 QTreeWidget树形窗口类

通过QSS样式表,我们可以轻松地自定义及其树项的外观,包括背景颜色、边框、字体、项目间距、指示器等。这不仅可以提升用户界面的美观性,还可以增强用户体验。本文详细介绍了如何为编写QSS样式表,并提供了示例代码以供参考。希望本文能够帮助你更好地理解和应用QSS样式表来定制控件。如果你需要更高级的自定义,比如自定义绘制树项或指示器,你可能需要子类化或使用其他Qt绘图技术。何曾参静谧的博客。

何曾参静谧的博客 1654

「QT」QSS样式表 之 QListWidget树形窗口类

通过QSS样式表,我们可以轻松地自定义及其列表项的外观,包括背景颜色、边框、字体、项目间距等。这不仅可以提升用户界面的美观性,还可以增强用户体验。本文详细介绍了如何为编写QSS样式表,并提供了示例代码以供参考。希望本文能够帮助你更好地理解和应用QSS样式表来定制控件。何曾参静谧的博客。

何曾参静谧的博客 1405

关于QSS 看这一篇就够了!

1、QSS介绍 自定百度。 2、QSS常用属性大全 Qss背景属性(Background) background 在一个声明中设置所有的背景属性。 background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动。 background-color 设置元素的背景颜色。 background-image 设置元素的背景图像。 background-position 设置背景图像的开始位置。 background-repeat 设置是否及如何重复背景图像。

HelloKandy's Blog 1万+

「QT」QSS样式表 之 QTextEdit文本编辑框样式表

本文详细讲解了如何在Qt5中使用QSS来定制QTextEdit控件的外观。通过QSS,开发者可以轻松地改变QTextEdit的边框、圆角、内边距、背景色、文本色等属性,以及根据控件的不同状态(如获得焦点、鼠标悬停、禁用等)应用不同的样式。这些功能使得开发者能够创建出符合应用程序风格和用户体验需求的富文本编辑器界面。何曾参静谧的博客。

何曾参静谧的博客 1264

在qss中,font-size属性 设置数值pt和px的区别

在qss中,font-size属性 设置数值pt和px的区别

weixin_43165135的博客 2926

「QT」QSS样式表 之 QSS(Qt Style Sheets)样式表介绍

Qt样式表(QSS)作为一种强大的工具,允许开发者定制和美化Qt应用程序的界面。QSS类似于网页开发中的CSS(层叠样式表),通过定义样式规则来控制Qt控件的外观。QSS为Qt应用程序提供了强大的样式定制功能,能够显著提高用户界面的美观性和一致性。通过灵活的样式定义和动态调整能力,QSS帮助开发者快速实现各种设计需求,提高了开发效率和用户体验。它允许开发者通过选择器指定不同类型的控件,并设置属性值,如颜色、字体、边框、间距等。QSS的语法类似于CSS,使用选择器和属性来定义控件的样式。

何曾参静谧的博客 1310

「QT」QSS样式表 之 QComboBox下拉控件样式表

的外观进行高度定制,包括下拉箭头、编辑框、下拉列表、边框和背景等。然而,由于Qt的内部实现和平台差异,某些样式属性可能无法按预期工作。在实际开发中,你可能需要结合Qt的绘图功能、自定义控件或平台特定的代码来实现更复杂的样式需求。)的样式可能在某些Qt版本或平台上不起作用,因为Qt可能会使用操作系统的原生箭头样式。的外观进行高度定制,包括下拉箭头、下拉列表、边框、背景颜色以及字体等。的边框和背景样式会同时影响编辑框和下拉箭头区域(除非这些部分有单独的样式规则覆盖)。然而,由于Qt的内部实现,直接为。

何曾参静谧的博客 2028

Qt 样式表之QSS

QSS 简介 QSS 全称为 Qt Style Sheets 也就是 Qt 样式表,它是 Qt 提供的一种用来自定义控件外观的机制。QSS 大量参考了 CSS 的内容,只不过 QSS 的功能比 CSS 要弱很多,体现在选择器要少,可以使用的 QSS 属性也要少很多,并且并不是所有的属性都可以用在 Qt 的所有控件上。 QSS 语法高亮 通过 “工具” -> “选项” 进入设置,通过 “text/css” 快速定位,然后在详情中添加 “*.qss” 即可实现 QSS 文件语法高亮,注意分隔符用 ‘;’

billy的博客 1万+

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

本篇介绍什么是样式表,讨论如何使用Qt样式表Qss修改应用程序外观,并通过实例进行讲解。 了解HTML的同学都知道,一般在HTML中我们把样式表叫做CSS,在Qt中我们称之为QSS。QSS和CSS并不完全等同,语法完全类似,定义上存在一些差别。 1. 什么是QSS QSS是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,用于美化UI界面。实现界面和程序的分离,快速切换皮肤。 QSS最大的优点就是简单便捷,我们可以通过它快速实现应用程序的外观界面。 2. QSS的基本语法

分享学习成长历程,Winter is coming! 2万+

学习QSS样式表

使用Qss设置QT程序界面的样式和皮肤

小曹的博客 4811

抖音小游戏(IAA)巨量引擎投放指南

摘要:本文详细介绍了在巨量引擎平台投放小游戏广告的完整流程,包括五个关键步骤:1)添加小游戏资产,填写ID等信息并等待审核;2)添加事件管理,配置激活和关键行为事件;3)通过橙子建站创建落地页,设置跳转链接;4)新建广告项目,选择小程序推广目标;5)完成广告创建。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 4482

微信聊天记录数据库解密实战:从WCDB到sqlcipher4的关键步骤解析

本文详细解析了微信桌面版聊天记录数据库的解密实战过程。通过逆向分析,定位了微信从WCDB框架到sqlcipher4加密的关键步骤,并成功提取了数据库密钥。文章重点介绍了如何通过动态调试、字符串定位等方法,追踪并验证sqlcipher4的加密密钥,最终实现对加密数据库文件的解密操作,为安全研究和数据恢复提供了技术参考。

weixin_29322553的博客 1071

【QT】史上最全最详细的QSS样式表用法及用例说明

Qt样式表支持各种属性、伪状态和子控件,可以自定义小部件的外观。QSS示例,如何为全局添加QSS样式(全局加载QSS的方法) selector { attribute: value } selector:选择器,如 QWidget、QPushButton、QGroupBox等 attribute:属性,如color、background-color、border、padding等 value:值,与属性对应

瞌睡的博客 8万+

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

超详细的QSS样式表入门Demo

超详细的Qss样式表练习Demo,为了效果明显有些样式进行了夸张,所以不一定好看,但一定会很清晰; 包含了常用控件的Qss样式;

mahuifa的博客 1万+

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 259

【部署】OpenClaw版本降级实操(含全量卸载)

本文详细介绍了OpenClaw工具的降级与卸载方法。主要内容包括:1)通过npm安装指定版本的核心命令及国内镜像加速方案;2)两种卸载路径:CLI工具存在时的简易一键卸载(含交互式与非交互式命令)和手动分步卸载流程;3)CLI已删除但服务仍在运行时,针对macOS(launchd)、Linux(systemd)和Windows(计划任务)系统的具体清理步骤。文章特别强调了卸载前备份的重要性,并提供了不同安装方式(常规安装与源码克隆)的额外说明,确保用户能彻底清理所有组件。

海兰 3171

深入浅出之QSS(Qt样式表)

Qt样式表(QSS)是一种用于自定义Qt应用程序中控件外观的机制。它基于CSS(层叠样式表)的语法和概念,允许开发者在不修改控件代码的情况下,通过外部样式表文件或直接在代码中嵌入样式规则来改变控件的视觉效果。

浩瀚之水的专栏 4305

【ESD专题】从原理上分析TVS管PCB Layout的经验法则

我们常常会听到的一些经验法则,按这些经验法则去做,一般也不会有什么问题,但是到底是为什么呢? 没有从原理上分析和证明的时候,往往在Layout之后还要担心实际测试结果怎么样。或是在实际测试出问题后,根本无法进行分析,难道说修改一个版本就好了?那要从哪里修改呢?也无从下手呀。...

一点硬件 1446

QSS技术(三)—— Qt样式表(QSS)控件样式大全

是一个常用的按钮控件,常见的样式设置包括背景颜色、边框、字体、悬停和按下状态等。是一个单行文本输入控件,样式设置包括边框、背景颜色、文字颜色和光标样式等。是一个多行文本编辑控件,样式设置包括边框、背景颜色、文字颜色和滚动条等。是一个复选框控件,样式设置包括复选框指示器的样式、背景颜色和字体等。是一个单选框控件,样式设置包括单选框指示器的样式、背景颜色和字体等。是一个滑块控件,样式设置包括滑块的轨道、刻度和滑块本身的样式。是一个工具按钮控件,样式设置包括按钮的图标、背景颜色和边框等。

J^T的博客 3263

【Camera2教程一】Camera2的框架Pipeline和framework中核心类和接口的详细介绍

Camera2 的 API 模型被设计成一个 Pipeline(管道),它按顺序处理每一帧的请求并返回请求结果给客户端。

jiangchaobing_2017的博客 790

EB配置I2c - 实现与PF8200的读写操作

①,基于硬件实现IIC通信(硬件GPIO引脚配置为I2c复用引脚)②,基于软件模拟IO实现IIC通信(代码控制SDA和SCL两个IO引脚的电平来模拟IIC时序)本文章基于64pin的恩智浦S32K146型号的芯片作为主机,从机是NXP的供电芯片。在本次实验中,我们将以使用EB工具链来配置硬件IIC通信。1,EB配置2,代码编写3,测试验证话不多说,走你~写操作比较简单,只需要申明一个I2c配置结构体变量即可。

weixin_48498880的博客 3767
上一篇: 【QSS样式表 - ②】:QSS选择器
下一篇: 【QSS样式表 - ④】:QLabel控件样式
街 三 仔
街 三 仔 新星创作者: python技术领域 新星创作者: python技术领域 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄5年 1万+粉丝 338原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值