Qt样式表

news2025/7/13 20:51:22

1>样式表介绍

样式表可通过 QApplication::setStyleSheet()函数将其设置到整个应用程序上,也可以使用 QWidget::setStyleSheet()将其设置到指定的部件或子部件上,不同级别均可设置样式表,称为样式表的层叠。样式表也可通过设计模式编辑样式表

2>样式表语法

1>样式规则

选择器{属性 1:值 1;属性 2:值 2;属性 3:值 3},
如QPushButton{background:blue;color:yello},此规则指定了QPushButton及它的子类使用蓝色做背景色,黄色做前景色,

样式表中一般不区分大小写,但类名、对象名及 Qt 属性名区分大小写。

声明中有多组属性用 " ; " 隔开

2>选择器类型

在这里插入图片描述

3>子部件

对于一些复杂的部件修改样式,可能需要访问它们的子部件,如QComboBox的下拉按钮,QSpinBox的向上、向下箭头灯。
如:
下拉按钮设置图片属性:
QComboBox::drop-down{image:url(dropdown.png)}

4>伪状态

4)伪状态
①选择器可以包含为状态来限制规则在部件的指定状态上的应用。伪状态在选择器之后,用冒号隔离。如
鼠标悬停在按钮上时被应用:
QPushButton:hover{color:white}
鼠标不悬停在按钮上时被应用(!表否定):
QPushButton:!hover{color:white}

②伪状态可多个连用,达到逻辑与效果。如
鼠标悬停在一个被选中的QCheckBox部件上时才应用规则:
QCheckBox:hover:checked{color:white}

③伪状态可通过逗号达到逻辑或效果。如
QCheckBox:hover,checked{color:white}

④伪状态和子部件联合使用。如
QComboBox::drop-down:hover{image:url(dropdown_bright.png)}

5>冲突解决(越特殊优先级越高)

几个样式规则对相同的属性指定不同的值时会产生冲突。如
QPushButton#okButton{color:gray}
QPushButton{color:red}
冲突原则:特殊的选择器优先。此例中QPushButton#okButton代表的是单一对象,而不是一个类的所有实例,所以okButton的文本颜色会是灰色的。同样的有伪状态的比没有伪状态的优先。

①层叠
样式表设置在QApplication上、父部件上或子部件上。部件有效的样式表示通过部件的祖先样式表和QApplication上的样式表合并得到的,当发生冲突时,部件自己的样式表优先于任何继承的样式表。

②继承
当使用Qt样式时,部件并不会自动从父部件继承字体和样色样式设置。如一个QPushButton包含在一个QGroupBox中,这里对QGroupBox设置样式表:
qApp->setStyleSheet(“QGroupBox{color:red;}”);

但没有对QPushButton设置样式表,这是QPushButton会使用系统颜色,而不会继承QGroupBox的颜色,如果想要QGroupBox的颜色设置到其子部件上,可以这样:
qApp->setStyleSheet(“QGroupBox,QGroupBox*{color:red;}”)

③设置QObject属性
从Qt4.3开始,任何可设计的Q_PROPERTY都可以使用“qproperty-属性名称”语法来设置样式表。如:
MyLabel{qproperty-pixmap:url(pixmap.png);}
MyGroupBox{qproperty-titleColor:rgb(100,200,100);}QPushButton{qproperty-iconSize:20px20px;}

6>盒子模型

使用样式表时,每个部件被看作拥有4个同心矩形的的盒子,四个矩形的内容分别为内容 content)、填衬(padding)、边框(border)、边距(margin)。边距、边框宽度和填衬等,属性的默认值都是0,这样四个矩形正好重叠。
在这里插入图片描述

7>设计模式下设置样式表

①右键单击部件,选择“改变样式表”,然后进行样式的编辑。
②部件属性区选择styleSheet也可进行样式的设置。

3>代码

1>代码实现

 //设置样式  设置黄色背景色
    //ui->pushButton->setStyleSheet("background:yellow");

    //设置前景色,此方式在设置前景色时会覆盖背景色
   // ui->pushButton->setStyleSheet("color:red");

    //同时设置按钮前景色和背景色
    setStyleSheet("QPushButton{background:blue;color:yello}");

    //设置滑动条背景色
    ui->horizontalSlider->setStyleSheet("background:yellow");

在这里插入图片描述

2>ui设计模式下实现

注意:如在主窗口 右键->改变样式表 如设置QPushButton那所有的QPushButton都会改变样式,如只设置一个按钮,先单击再右键
在这里插入图片描述

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

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

相关文章

vue中render函数的作用及解析

在vue脚手架的main.js文件中,存在这样一段代码: 意思是对vue实例的配置,其中render函数的作用是,将h创建的Node节点信息return返回给Vue.js底层处理文件中的beforeMount()生命周期钩子函数,让其将Node节点信息在界面中…

智能优化算法之蚁群算法

1、蚁群算法概述 蚁群算法(Ant Colony Algorithm, ACA) 由Marco Dorigo于1992年在他的博士论文中首次提出, 该算法模拟了自然界中蚂蚁的觅食行为。 蚂蚁在寻找食物源时, 会在其经过的路径上释放一种信息素, 并能够感知…

配对变量t检验

区别双变量t检验,见:https://mp.csdn.net/postedit/100640098 配对变量为两两相关的变量:如敷药前后体重变化。 要求:两变量服从正态分布。 SPSS演练 打开数据文件:ptest.sav 载地址:https://download.c…

vscode环境配置文件生成

使用vscode进行C开发时,除了需要安装相应的插件(例如:C/C、CMake、MySql等)外,还需要对相应的开发环境进行配置,和vs中的环境配置道理相通。一、编译文件介绍配置 C 环境时,会生成.vscode 文件夹…

记录一次消毒碗柜维修

现象:按开始消毒后马上停止,但可以一直按着按钮,就可以消毒,并且30分钟后可以自动停止。分析:消毒柜里面控制器就这3个1 开关只是触发通电,弹起就断开,按下可以接通,判断该零件正常2…

STM32感应开关盖垃圾桶

目录 项目需求 项目框图 ​编辑 硬件清单 sg90舵机介绍及实战 sg90舵机介绍 角度控制 SG90舵机编程实现 超声波传感器介绍及实战 超声波传感器介绍 超声波编程实战 项目设计及实现 项目需求 检测靠近时,垃圾桶自动开盖并伴随滴一声,2秒后关盖…

Hadoop入个门

文章目录1️⃣、Hadoop概述1.1、Hadoop是什么1.2、三大发行版本1.3、优势1.4、组成HDFSYARNMapReduceHDFS、YARN、MapReduce三者关系1.6、大数据技术生态体系image-202303111027195802️⃣、Hadoop运行环境搭建2.1、虚拟机环境准备2.2、克隆虚拟机2.3、在hadoop2上安装JDK2.4、…

cocoscreator+TS 遇到的问题

报错Can not preload the scene "game2" because it is not in the build settings.报错 1209, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#1209 to see details. Arguments: game2(env: Windows,mg,1.06.2303022; lib: …

掌握Shell脚本的if语句,让你的代码更加精准和高效

前言 大家好,我是沐风晓月,本文首发于csdn, 作者: 我是沐风晓月。 文章收录于 我是沐风晓月csdn专栏 【系统架构实战】专栏中的【shell脚本入门到精通】专栏。 本专栏从零基础带你层层深入,学会shell脚本,不是梦。 &…

核心系统国产平台迁移验证

核心系统国产平台迁移验证 摘要:信息技术应用创新,旨在实现信息技术领域的自主可控,保障国家信息安全。金融领域又是关系国家经济命脉的行业,而对核心交易系统的信息技术应用创新是交易所未来将要面临的重大挑战。为了推进国产化进…

云数据库RDS介绍

RDS介绍 关系型数据库(relational database service,简称RDS),是一种可靠、可弹性伸缩的在线数据库服务。 1)基于分布式文件系统和SSD盘高性能存储 2)支持MySQL、SQL Server、PostgreSQL、MariaDB TX引擎 …

原来不用控制台,也可以轻松调试CSS呀

Ⅰ. 作用 用于调试CSS , 比控制台添更加方便,不需要寻找 ;边添加样式,边可以查看效果,适合初学者对CSS 的理解和学习; Ⅱ. 快速实现(两边) ① 显示这个样式眶 给 head 和 style 标签添加一个…

YOLOS学习记录

在前面,博主已经完成了YOLOS项目的部署与调试任务,并在博主自己构造的数据集上进行了实验,实验结果表明效果并不显著,其实这一点并不意外,反而是在情理之中。众所周知,Transformer一直以来作为NLP领域的带头…

独立开发者案例:每周4h月入数万刀;国家数据局与时代红利;创业前先买个域名;工程师成长最重要的是什么 | ShowMeAI周刊

这是ShowMeAI周刊的第6期。聚焦AI领域本周热点,及其在各圈层泛起的涟漪;关注AI技术进步,并提供我们的商业洞察。欢迎关注与订阅!👀日报合辑 ⌛ 独立开发者案例:每周只工作4小时,独立开发者打造月…

Docker nginx安装使用

拉取镜像$ docker pull nginx默认会拉取仓库名为nginx,tag为latest的镜像。挂载nginx.conf文件首次启动nginx容器考虑到后面维护nginx配置文件nginx.conf的成本,这里采用docker 数据卷的技术,即将docker中的nginx.conf配置文件挂载到宿主机当…

嵌入式学习笔记——STM32的USART通信概述

文章目录前言常用通信协议分类及其特征介绍通信协议通信协议分类1.同步异步通信2.全双工/半双工/单工3.现场总线/板级总线4. 串行/并行通信5. 有线通信、无线通信STM32通信协议的配置方式使用通信协议控制器实现使用IO口模拟的方式实现STM32串口通信概述什么是串口通信STM32F40…

# YOLOv8测试(1)

YOLOv8测试(1)1. 训练最简流程1.1 安装包1.2 训练demo1.3 验证参考文献资料鉴于网络上的太多教程,都太过繁琐了。其实之前也用过YOLOv2 v3版本,但很久没用,找了一圈教程多少有坑,想想还是自己整理一版吧。花…

测开:vue高级特性

vue官网地址: Vue.js - 渐进式 JavaScript 框架 | Vue.js 上一章节: 测开:vue基本语法_做测试的喵酱的博客-CSDN博客 一、vue事件修饰符 1.1 stop: 阻止事件冒泡 事件冒泡:子元素触发某个事件之后,会依次将这个事…

用DQN实现Atari game(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 强化学习研究的是Agent和环境交互中如何学习最优策略,以获得最大收益。Agent需要能够观察环境(observe)所处的状态&…

组播IP 映射 组播MAC

组播IP地址与组播MAC地址之间的换算方法与例子 1、在IP分类中,D类IP地址用于组播MAC。 2、在TCP/IP中,最常用的v4组播MAC地址的前24位固定为01005e,第25位固定为0,后23位由IP地址的后23位复制得出。 3、在D类组播IP中有5位未用&a…