qt 样式表 qss

news2024/9/20 16:58:49

Qt样式表是一个可以自定义部件外观的十分强大的机制﹐除了那些能够通过子类化QStyle更改的外观,其余的都可以使用Qt样式表来美化。

实现办法:调用setStyleSheet 函数,其中styleSheet一般通过读取配置文件.qss实现。

  void setStyleSheet(const QString& styleSheet);

	QAboutDialog aboutdlg;

	QFile file("style.qss");
	file.open(QFile::ReadOnly);
	QString stylesheet = QString::fromLatin1(file.readAll());
	aboutdlg.setStyleSheet(stylesheet);

如style.qss文件如下 

QPushButton
{
border-radius:5px;
background:rgb(150, 190, 60);
color:red;
font-size:15px;
}

样式表

每个样式规则由选择器( selector)声明( decla-ration)组成。

选择器类型

在这里插入图片描述

子控件

对于一些复杂的部件修改样式,可能需要访问它们的子控件,比如 QComboBox的下拉按钮,还有QSpinBox的向上和向下箭头等。选择器可以包含子控件来对部件的.特定子控件应用规则

QComboxBox::drop-down{image:url(dropdown.png);}
QSpiBox::up-button{image:url(up.png);}
QSpiBox::down-button{image:url(down.png);}

 伪状态

选择器可以包含伪状态来限制规则在部件的指定状态上应用。伪状态出现在选择器之后,用冒号隔离。

QPushButton:hover
{
border-radius:5px;
background:rgb(150, 190, 60);
color:red;
font-size:15px;
}

可以对伪状态取反。在伪状态前面加上!

QLineEdit:!read-only
{
background:rgb(150, 190, 60);
}

可以串联使用,即逻辑与计算。

QCheckBox:hover:checked
{
    color:red;
}

可以并联使用,即逻辑或计算

QCheckBox:hover,QCheckBox:checked
{
    color:red;
}

伪状态也可以和子控件联合使用

QComboBox :: drop- down: hover { image;url(dropdown_bright.png)}

状态    描述
:disabled    控件禁用
:enabled    控件启用
:focus    控件获取输入焦点
:hover    鼠标在空间上悬停
:pressed    鼠标按下
:checked    控件被选中
:unchecked    控件没有选中
:indeterminate    控件部分被选中
:open    控件
:closed    空间关闭
:on    控件可以切换,且处于on状态
:off    控件可以切换,且处于off状态
!    对以上状态的否定
 

冲突解决

1.特殊的选择器优先。因为QPushButton# okButton一般代表一个单一的对象,而不是一个类所有的实例,所以它比QPushButton更特殊,那么这时便会使用第一个规则,okButton的文本颜色为灰色。

 2.有伪状态比没有伪状态优先。如果两个选择符的特殊性相同,则后面出现的比前面的优先。Qt样式表使用CSS2规范来确定规则的特殊性。
 

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

属性

缺省情况下,margin、border、padding属性缺省为0.

  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。

在这里插入图片描述

通用的样式属性、值

background-image:设置背景图片(根据图片大小)

border-image:设置背景图片(根据控件大小)

background-color:设置背景颜色

border-color:设置边框颜色

color:设置字体颜色

border:设置边框  例:border:1px solid red;

border-radius:设置边框圆角

font:设置字体

text-align: 设置字体水平对齐  left:靠左  center:居中  right:靠右

padding:设置内边框距离

margin:设置外边框距离

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

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

相关文章

volatile如何保证可见性

在Java中, volatile关键字可以保证变量的可见性,如果我们将变量声明为 volatile,这就指示 JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取。 Java内存模型: 1.Java所有变量都存储在主…

关于java语言当中的this关键字

/*** 关于java语言当中的this关键字:(其内存图见下图)* 1、this是一个关键字,翻译为:“这个”* 2、this是一个引用,它是一个变量,this变量中保存的内存地址指向了自身,this存…

APISpace接口推荐

APISpace 上面有各种类型的API,短信类、天气环境类、快递物流类、数据智能类等等,并且所有的API都提供的免费的调用次数,这么多的API肯定有你中意的!!!我们超多的热门API推荐给大家: IP归属地A…

CUDA与cuDNN安装教程(超详细)

前言 windows10 和win11安装 CUDA ,首先需要下载两个安装包 CUDA toolkit(toolkit就是指工具包) cuDNN 用于配置深度学习使用 官方教程 CUDA:Installation Guide Windows :: CUDA Toolkit Documentation (nvidia.com) cuDNN&…

ADMIN云计算系统管理

云计算系统管理一、inux简介Unix/Linux发展史操作系统 —— UNICS,后改为UNIXLinux版本及应用Red Hat系列版本二、Linux系统的安装三、Linux预备知识Linux目录结构四、Linux基本操作获取命令行右键“打开终端”命令行提示符pwd — Print Working Directorycd — Cha…

01-微服务探讨(摘)

1. 前言 1.1 微服务目的 有效地拆分应用,实现敏捷开发和部署,最终的目标是实现敏捷开发和部署,实现的方式是围绕业务能力*有效地拆分应用*。 微服务就是从各种角度,包括组织的、技术的等来阐释怎样有效地拆分应用,相对…

SSM-Spring

Spring Framwork 1. 核心概念 1.1 IoC控制反转 inversion of control控制反转 使用对象是主动由外部提供对象,此过程对象创建控制权由程序转移到外部。 Spring 提供IoC容器,用来充当IoC思想中的外部。负责创建和初始化等工作,被创建的对象再…

04-HTTPS证书格式及转换

PEM格式的证书文件(*.pem)由Base64编码的二进制内容和开头行(-----BEGIN CERTIFICATE-----)、结束行(-----END CERTIFICATE-----)组成,支持使用EditPlus等文本编辑器打开。本文介绍了将不同格式…

[附源码]java毕业设计教室用电控制系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

数据库的备份和还原(slqserver)

数据库的备份 1.语法&#xff1a; BACKUP DATABASE { database_name | database_name_var } TO <backup_device> [,...n] [ WITH{COPY_ONLY| NAME {backup_set_name | backup_set_name_var }| { NOINIT | INIT }| DESCRIPTION { test | text_variable }| PASSWORD { …

双端队列(双端bfs)解决边权只包含0和1的最短路问题

电路维修 达达是来自异世界的魔女&#xff0c;她在漫无目的地四处漂流的时候&#xff0c;遇到了善良的少女翰翰&#xff0c;从而被收留在地球上。 翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障&#xff0c;导致无法启动。电路板的整体结构是一个 R行 C 列的网…

关于 re.sub 部分替换的解决办法

关于 re.sub 部分替换的解决办法写作背景问题重现解决办法代码详解结尾写作背景 最近本菜鸡遇到一个问题&#xff0c;我想将字符串中某一部分替换成指定内容&#xff0c;而且为了定位到要替换的内容&#xff0c;所以使用正则的时候还需要前后一些字符作为锚点&#xff0c;这可…

linux下基本命令

linux下基本命令一、linux相关快捷键二、linux下内部命令和外部命令2.1 内建命令2.2 外部命令2.3 内建命令和外部命令对比2.4 命令类型查看方法2.4 内建命令和外部命令帮助三、man手册四、相对路径和绝对路径五、pwd和cd命令六、mkdir创建目录七、rmdir删除目录八、linux文件类…

JMeter如何自定义HTTP组件

JMeter是一个优秀的开源项目&#xff0c;我们可以在jmeter的官网了解到如何使用和如何二次开发&#xff1a;Apache JMeter - Apache JMeter™ 因工作需要&#xff0c;最近做了一个JMeter自定义的http组件&#xff08;其实就是在http的基础上加了点东西而已&#xff09;。现就该…

TCO-PEG5-amine,NH2-PEG5-TCO,反式环辛烯-五聚乙二醇-氨基广泛应用于生物学研究

TCO-PEG5-NH2中英文名&#xff1a; CAS号&#xff1a;N/A | 英文名&#xff1a;TCO-PEG5-amine&#xff0c;TCO-PEG5-NH2 |中文名&#xff1a;反式环辛烯-五聚乙二醇-氨基TCO-PEG5-NH2物理参数&#xff1a; CASNumber&#xff1a;N/A Molecular formula&#xff1a;C21H40N2O7…

没有实施APS软件的工厂,常常面临的问题

对于制造工厂车间的运行而言&#xff0c;计划是核心的业务。制造工厂面对这么多订单并行生产执行、受制于有限的制造资源&#xff0c;如何安排次序、如何权衡轻重缓解&#xff0c;其实都是计划的范畴&#xff0c;计划执行过程总是受到各种形式的干扰或冲击&#xff0c;如何综合…

虹科分享 | 网络性能监控 | 网络中的应用性能意味着什么?

TCP协议的可靠性 数据包丢失是对网络的破坏&#xff0c;因为它导致延迟。TCP协议建立了可靠的数据传输&#xff0c;但掩盖了丢包的影响。TCP确保数据的传输是基于一个叫做 "滑动窗口 "的概念。这种机制控制着传输的字节序列和收到的确认。 在排序的帮助下&#xff…

项目管理之信息文档管理与配置管理(第一篇)

目录 前言 一、软件文档的分类 1.开发文档 2.产品文档 3.管理文档 二、文档质量的四个等级 1.1级文档 2.内部文档&#xff08;2级&#xff09; 3.工作文档&#xff08;3级文档&#xff09; 4.正式文档&#xff08;4级文档&#xff09; 三、配置管理 1.配置管理的定义…

XCTF-web1文件包含绕过file include

场景一&#xff1a; fileclude 题目描述 好多file呀&#xff01; 进入场景 给出PHP源码 包含flag.php文件 GET获取两个参数file1和file2 当参数不为空时&#xff0c;使用file_get_contents()函数将文件内容读入字符串&#xff0c;判断是否为"hello ctf" 利用ph…

vue项目前端优化处理方案整理

vue项目前端优化处理 目录 vue项目前端优化处理 路由懒加载 按需引入模块 外部资源引入&#xff0c;cdn加载 移除项目中所有的console.log()控制台信息数据打印 是否在构建生产包时生成sourcdeMap 上传图片文件压缩 开启gizp压缩 前端页面代码优化 路由懒加载 路由懒…