Qt扫盲-QSS定制Qt Widget控件

news2024/10/5 1:20:52

QSS定制Qt Widget控件

  • 概述
  • 一、盒子模型
  • 二、子控件

概述

  • 在使用样式表时,每个部件都被视为具有四个同心矩形的盒子:外边距矩形、边界矩形、内边距矩形和内容矩形。
    其实即是每一个继承至 QWidget 都支持的,这个和 前端的 CSS 里面的 盒子模型有些区别但是不大。

一、盒子模型

四个同心矩形出现概念如下:
在这里插入图片描述

  • margin 外边距 在border 边框之外。
  • border 边框是在 margin 外边距和 padding 内边距之间绘制的。
  • padding 内边距落在边框内部,位于边框和实际内容之间。
  • 内容是当我们删除了外边距、边框和内边距后,原始部件或子控件剩余的内容。

margin、border-width 和 padding 属性的默认值都为0。在这种情况下,所有四个矩形(外边距、边框、内边距和内容)完全重合。

可以使用background-image属性为小部件指定背景。默认情况下,background-image只绘制 boder 内的区域。这可以通过background-clip属性来改变。你可以使用 background-repeat 和 background-origin 来控制背景图像的重复和来源。
背景图像不随窗口组件的大小而缩放。

要提供随窗口组件大小缩放的“外观”或背景,必须使用border-image。因为border-image属性提供了另一种背景,所以在指定border-image时就不需要指定background-image了。在这种情况下,如果同时指定了border-image和background-image,则border-image会在background-image上绘制。

此外,还可以使用image属性在border-image上绘制图像。指定的图像不会平铺或拉伸,当其大小与窗口组件的大小不匹配时,使用image-position属性指定其对齐方式。与background-image和border-image不同的是,我们可以在image属性中指定一个SVG,在这种情况下,图像会根据窗口组件的大小自动缩放。

border-image ,image 都会缩放内容,image 和 background-image ,一个是前景,一个是背景,有时候两个状态可以用这个来切换使用。

渲染规则的步骤如下:

  • 为整个渲染操作设置clip (border-radius)
  • 绘制背景(background-image)
  • 绘制边框(border-image, border)
  • 绘制叠加图像(图片)

所有我们也尽可能按照这个顺序写背景之类 QSS 代码

二、子控件

子控件其实就是那些复合控件。最常用的就是 QComboBox ,窗口组件被认为是绘制在彼此之上的子控件的层次结构(树)。例如,QComboBox绘制下拉子控件,然后是向下箭头子控件。因此,QComboBox被渲染如下:

  • 渲染 QComboBox{ } 规则
  • 渲染 QComboBox::drop-down { } 规则
  • 渲染 QComboBox::down-arrow{ } 规则

子控件共享父子的位置关系。就QComboBox而言,down-arrow的父组件是下拉框,而下拉框的父组件是这个QCombox部件本身。子控件使用 subcontrol-position 和 subcontrol-origin 属性在它们的父控件中定位。
一旦定位,子控件可以使用box模型设置样式。

注意:对于像 QComboBox 和 QScrollBar 这样的复杂部件,如果自定义了一个属性或子控件,那么所有其他属性或子控件也必须自定义。

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

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

相关文章

哪吒S亮相广州车展,定位B级燃油车颠覆者

2022年收官,哪吒汽车宣布全年交付152073台,其中: •哪吒U 51021台; •哪吒V 98847台; •哪吒S 2003台(12月首月交付)。与此同时,在年末的广州车展,哪吒汽车携全系车型参展…

Elastic-Job分布式任务调度(2):Elastic-Job快速入门

1 环境搭建 1.1 版本要求 JDK要求1.7及以上版本 Maven要求3.0.4及以上版本 zookeeper要求采用3.4.6及以上版本 1.2 Zookeeper安装&运行 自行查看我的zookeeper专题 ZooKeeper(3):ZooKeeper集群环境搭建_不死鸟.亚历山大.狼崽子的博客-CSDN博客 1.3 创建maven工程 创建…

Python代理IP的使用和代理池的设置

熟悉python的人都知道为了python的正常请求,维持数据的稳定获取,都会用到代理IP。代理IP不仅可以用来规避IP在单位时间的请求次数,还可以借助代理来隐藏真实的IP,避免出现“IP请求过于频繁”,“403”等报错。今天就带大…

甲方安全之仿真钓鱼演练(邮件+网站钓鱼)

文章目录一、简介1.1 前言1.2 整体思路1.3 演练所需1.4 各邮件厂商日群发上限二、钓鱼平台搭建及配置2.1 gophish平台搭建2.2 收件目标配置(User & Groups)2.3 发信邮箱配置(Sending Profiles)2.4 邮件模版配置(Em…

Windows下socket网络编程,C++,Email的客户端程序(支持邮件基于SMTP的发送和POP3的接收)

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你,因为我是个诚信互关的人!&…

linux--管道

这里写自定义目录标题基本概念管道特征编写模型有名管道模型示例demowrite.cread.c结果无名管道基本概念 进程间存在天然的壁垒,进程间通信(Interperocess Communication,IPC)是指二个或者多个进程之间进行数据交换的过程 管道特征 管道是进程间通讯的一种常用方法。管道分为…

MyISAM 引擎和 InnoDB 引擎中索引存储的区别

一、MyISAM 引擎下的索引 MyISAM 存储引擎不支持行级锁,只有表级锁;不支持事务,也不支持外键,主要面向 OLAP 应用,是 MySQL 数据库5.5.8 版本之前默认的存储引擎,MyISAM 适用于不需要关心事务,…

实时即未来,大数据项目车联网之原始数据实时ETL任务HBase调优【九】

1. 原始数据实时ETL任务HBase调优 1.1 数据写入hbase优化 上一节写入数据,一条条数据put到表中,对于大量数据的写入,效率极低,因此针对此项进行优化 使用hbase客户端写缓存进行批量写入数据到hbase中 hbase客户端写缓存对象:BufferedMutator hbase的每一次put操作写入数据…

CSS权威指南(二)选择符

1.样式的基本规则 CSS的一个核心优势就是可以为文档中某种种类的元素全部应用相同的样式规则。CSS样式便于修改和编辑,而且能应用到指定的所有文本元素上。 (1)元素选择符 即直接使用元素的名称进行选择,类似于p{ font-size:10px…

Lc.152 乘积最大子数组

题目链接1 前言翻译成大白话:就是找一个数组,其连续子数组的乘积最大值。2 算法思路:一般求最值的问题首选动态规划。这道题与[LC.53 最大子序和]很类似。我们假设状态转移方程为:它表示以第 i 个元素结尾乘积最大子数组的乘积可是在这里&…

异步通信技术AJAX | AJAX实现省市联动、AJAX跨域问题

目录 一:异步通信技术AJAX | 快速搞定AJAX(第四篇) 1、AJAX实现省市联动 2、超链接、form表单和JS代码跨域 3、AJAX跨域问题 (1)测试Ajax跨域访问 (2)同源 & 不同源 (3&a…

可以通过哪些方式了解量化接口level2?

可以通过哪些方式了解量化接口level2?大家可以去百查看关于量化交易接口的信息,根据小编对市场上大多数的level2接口了解发现既有要收费的也有免费的,一般来说第三方软件公司提供的都是收费的居多,一些正规券商提供的就是免费的居…

一文读懂自动驾驶汽车:软硬结合 造就未来出行体验(下篇)

在上篇,我们回顾了自动驾驶汽车的发展历史,介绍了自动驾驶汽车的工作原理。得益于 AI 技术的突破,自动驾驶汽车飞速发展,运算速度也从 2007 年的 230 FLOPS 跃升至 2022 年的 254 TOPS,向软件定义汽车发展。现在&#…

数据结构-考研难点代码突破 (C++实现有向无环图的拓扑排序)

文章目录1. AOE网2. 拓扑排序C代码1. AOE网 AOV网∶若用DAG 图&#xff08;有向无环图&#xff09;表示一个工程&#xff0c;其顶点表示活动&#xff0c;用有向边<Vi&#xff0c;Vj>表示活动 Vi必须先于活动Vj进行的这样一种关系&#xff0c;则将这种有向图称为顶点表示…

基于主从博弈的智能小区代理商定价策略及电动汽车充电管理(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C语言贪吃蛇大作战

C语言贪吃蛇大作战 贪吃蛇大作战 1997 年&#xff0c;诺基亚公司发布了贪吃蛇游戏&#xff0c;并将其内置于诺基亚 6110 手机中&#xff0c;使这款游戏迅速风靡全球&#xff0c;成为一代经典。一般的观点认为&#xff0c;贪吃蛇是手机游戏的鼻祖。 与传统单人贪吃蛇不同的是&…

【时间之外】系统管人,能行?(冷眼旁观连载之一)

目录 写作初心 在用工具 某微 某道 某书 工具痛点 某微痛点 某道痛点 某书痛点 总结一下&#xff1a;功能复杂 2023年观察计划 最大痛点 效果跟踪 未完待续 写作初心 2022年应该是这一生中值得纪念的一年&#xff0c;疫情封控自不必说&#xff0c;对于个人而言&a…

traefik gateway api

背景 在使用istio后开始考虑网关了&#xff0c;istio已经有自己的网关&#xff0c;为什么还要另外找一个别的网关&#xff0c;参考了好几个文章大致结论是&#xff0c;istio的网关功能不够强大&#xff0c;下图红色的部分是istio网关暂时缺失的&#xff0c;所以我的结论是在is…

Monorepo 下 Git 工作流的最佳实践

作者&#xff1a;林宜丙 背景 没有哪一种 Git 工作流是银弹&#xff0c;合适的 Git 工作流往往取决于项目的代码规模、协作人数、应用场景等&#xff1b;本次分享先从适合小型 Monorepo 的 Feature branch 工作流开始分享&#xff0c;接着分享适用于中大型 Monorepo 的 Trunk…

头歌:Ping客户端创建原始套接字(底部附全关完整答案)

头歌实践教学平台 (educoder.net)为Ping客户端创建一个原始类型的套接字原始套接字套接字&#xff08;socket&#xff09;是一个抽象层网络应用程序可以通过它发送或接收数据&#xff0c;可对其进行像文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中&a…