Qt第十二章 样式表

样式表

文章目录

  • 样式表
    • 1.样式表
      • 盒子模型
    • 2.选择器
      • 选择器类型
      • 伪状态选择器Pseudo-State
    • 3.控件示例
    • 4
      • 继承自QWidget的类,设置qss样式表没有效果,需要重写paintEvent

1.样式表

盒子模型

在这里插入图片描述

2.选择器

  • 样式表语法,选择器{属性1:值;属性2:值;}
  • 如果只有单个属性,分号可以不加

选择器类型

选择器示例描述
通用选择器*匹配所有控件
类型选择器QPushButton匹配给定的控件,包括子类
类选择器.QPushButton匹配给定的控件,不包括子类
属性选择器QPushButton[flat=“false”]匹配给定类型中符合[属性]的控件
ID选择器QPushButton#closeButton匹配给定类型,且对象名为closeButton的控件
子孙对象选择器QDialog QPushButton匹配给定类型的子孙控件
子对象选择器QDialog>QPushButton匹配给定类型的直接子控件
辅助[子控件]选择器QComboxBox::drop-down复杂对象子控件
伪状态选择器QPushButton:hover控件的特定状态下的样式
并集选择器QPushButton,QLineEdit若干基础选择器可以写一起,逗号隔开
QPushButton[down = "false"]{color:yellow;background:red}
QLabel[text = "TextLabel"]{color:red}

同时在UI和文件代码里设置样式表会冲突,只会生效ui里设置的

伪状态选择器Pseudo-State

QPushButton:hover{color:red}
状态描述
:disabled控件禁用
:enabled控件启用
:focus控件获取输入焦点
:hover鼠标在控件上悬停
:pressed鼠标按下
:checked控件被选中
:unchecked~
:indetetminate控件部分被选中
:open控件打开
:closed~
:on控件可以切换,且处于on状态
:off~
!对以上状态的否定

3.控件示例

QLabel#label{font-family: "微软雅黑";
font-size: 20px;font-style: italic;
color: rgb(239,204,180);
border-image:url("C:/Users/PVer/Pictures/Resource/派蒙.jpeg")
}QPushButton{
/*上右下左设置padding间距*/
padding:20px 0px 0px 50px;
border: 3px solid black;
border-radius: 10px;
background-color:red;
}QLineEdit{
border-top:2px solid yellow;
border-right:2px dotted black;
border-top-left-radius:10px;
border-left:3px solid black;
}QLabel#label_2{
background-image:url("C:/Users/PVer/Pictures/Resource/xiaoku.png");
background-repeat:no-repeat;
background-position:left top;
}QLabel#label_2:hover{
background-color:green;
}QPushButton:pressed{
background-color:orange;
}QCheckBox::indicator{
background-color:grey;
border-radous:5px;
}QCheckBox::indicator:checked{
background-color:black;
}QCheckBox::indicator:!checked:hover{
background-color:green
}

在这里插入图片描述

4

.细节、注意事项

继承自QWidget的类,设置qss样式表没有效果,需要重写paintEvent

 void CustomWidget::paintEvent(QPaintEvent *){QStyleOption opt;opt.initFrom(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);}

而且必须使用Q_OBJECT宏

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

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

相关文章

七款热门企业数据加密软件推荐|2024年加密软件最新整理出炉!

古言到:“知己知彼,百战不殆。” 当今时代,数据为王! 企业数据的保护已成为竞争中的关键一环。 数据加密软件作为守护企业数字资产的利剑,其重要性日益凸显。 2024年,市场上涌现出一批功能强大、特色鲜…

Vue入门之v-on、v-model、v-if

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

高效实现GIS地图可视化,这款免费工具不可错过

GIS地图可视化怎么做?山海鲸可视化这款免费可视化工具帮你轻松搞定。从三维GIS地图可视化需求出发,山海鲸可视化提供了强大的GIS场景编辑功能,包括支持添加倾斜摄影和地形编辑。无论是复杂的地形调整还是细致的倾斜摄影添加,这款工…

【C++初阶】模板初阶

【C初阶】模板初阶 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. 泛型编程 2. 函数模板 2.1 函数模板的概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.…

【C++修炼之路 第四章】模板 初阶

引入: 我们平时需要调用这样的函数时,往往需要写不同类型的函数用于匹配操作不同类型变量 void Swap(int& a, int& b) {// ... } void Swap(double& a, double& b) {// ... } //......像上面代码中函数重载有一下几个不好的地方&#…

filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台

springboot集成链路追踪 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from…

Stateflow中的状态转换表

状态转换表是表达顺序模态逻辑的另一种方式。不要在Stateflow图表中以图形方式绘制状态和转换&#xff0c;而是使用状态转换表以表格格式表示模态逻辑。 使用状态转换表的好处包括&#xff1a; 易于对类列车状态机进行建模&#xff0c;其中模态逻辑涉及从一个状态到其邻居的转换…

处理uniapp刷新后,点击返回按钮跳转到登录页的问题

在使用uniapp的原生返回的按钮时&#xff0c;如果没有刷新会正常返回到对应的页面&#xff0c;如果刷新后会在当前页反复横跳&#xff0c;或者跳转到登录页。那个时候我第一个想法时&#xff1a;使用浏览器的history.back()方法。因为浏览器刷新后还是可以通过右上角的返回按钮…

SpringBoot限制请求访问次数

本篇文章的主要内容是SpringBoot怎么限制请求访问次数。 当我们的服务端程序部署到服务器上后&#xff0c;就要考虑很多关于安全的问题。总会有坏人来攻击你的服务&#xff0c;比如说会窃取你的数据或者给你的服务器上强度。关于给服务器上强度&#xff0c;往往就有高强度给服务…

​1:1公有云能力整体输出,腾讯云“七剑”下云端

【全球云观察 &#xff5c; 科技热点关注】 曾几何时&#xff0c;云计算技术的兴起&#xff0c;为千行万业的数字化创新带来了诸多新机遇&#xff0c;同时也催生了新产业新业态新模式&#xff0c;激发出高质量发展的科技新动能。很显然&#xff0c;如今的云创新已成为高质量发…

[React 进阶系列] useSyncExternalStore hook

[React 进阶系列] useSyncExternalStore hook 前情提要&#xff0c;包括 yup 的实现在这里&#xff1a;yup 基础使用以及 jest 测试 简单的提一下&#xff0c;需要实现的功能是&#xff1a; yup schema 需要访问外部的 storage外部的 storage 是可变的React 内部也需要访问同…

VulnHub:CK00

靶场搭建 靶机下载地址&#xff1a;CK: 00 ~ VulnHub 下载后&#xff0c;在vmware中打开靶机。 修改网络配置为NAT 处理器修改为2 启动靶机 靶机ip扫描不到的解决办法 靶机开机时一直按shift或者esc直到进入GRUB界面。 按e进入编辑模式&#xff0c;找到ro&#xff0c;修…

【devops】ttyd 一个web版本的shell工具 | web版本shell工具 | web shell

一、什么是 TTYD ttyd是在web端一个简单的服务器命令行工具 类似我们在云厂商上直接ssh链接我们的服务器输入指令一样 二、安装ttyd 1、macOS Install with Homebrew: brew install ttydInstall with MacPorts: sudo port install ttyd 2、linux Binary version (recommend…

Android10.0 锁屏分析-KeyguardPatternView图案锁分析

首先一起看看下面这张图&#xff1a; 通过前面锁屏加载流程可以知道在KeyguardSecurityContainer中使用getSecurityView()根据不同的securityMode inflate出来&#xff0c;并添加到界面上的。 我们知道&#xff0c;Pattern锁所使用的layout是 R.layout.keyguard_pattern_view&a…

Mysql基础与安装

一、数据库的概念和相关的语法和规范 1、数据库的概念 数据库&#xff1a;组织&#xff0c;存储&#xff0c;管理数据的仓库。 数据库的管理系统&#xff08;DBMS&#xff09;&#xff1a;实现对数据有效组织&#xff0c;管理和存取的系统软件。 数据库的种类&#xff1a; m…

QT 多线程 QThread

继承QThread的线程 继承 QThread 是创建线程的一个普通方法。其中创建的线程只有 run() 方法在线程里的。其他类内定义的方法都在主线程内。 通过上面的图我们可以看到&#xff0c;主线程内有很多方法在主线程内&#xff0c;但是子线程&#xff0c;只有 run() 方法是在子线…

Python | Leetcode Python题解之第236题二叉树的最近公共祖先

题目&#xff1a; 题解&#xff1a; # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution:def lowestCommonAncestor(self, root: TreeNode, p…

实战篇(十一) : 拥抱交互的三维世界:利用 Processing 和 OpenGL 实现炫彩粒子系统

🌌 拥抱交互的三维世界:利用 Processing 和 OpenGL 实现炫彩粒子系统 在现代计算机图形学中,三维粒子系统是一个激动人心的领域。它不仅可以用来模拟自然现象,如烟雾、火焰和水流,还可以用来创造出令人叹为观止的视觉效果。在这篇文章中,我们将深入探讨如何使用 Proces…

第四届中国移动“梧桐杯”大数据创新大赛正式启动报名!

“梧桐杯”大赛是中国移动面向海内外高校青年学生打造的年度大数据创新赛事&#xff0c;以“竞逐数海&#xff0c;领航未来”为主题&#xff0c;携手政府、高校和行业企业通过比赛发掘高校优秀人才&#xff0c;孵化投资优秀项目。大赛设置“企业导师校内导师”双轨导师制&#…

Linux_线程的同步与互斥

目录 1、互斥相关概念 2、代码体现互斥重要性 3、互斥锁 3.1 初始化锁 3.2 申请、释放锁 3.3 加锁的思想 3.4 实现加锁 3.5 锁的原子性 4、线程安全 4.1 可重入函数 4.2 死锁 5、线程同步 5.1 条件变量初始化 5.2 条件变量等待队列 5.3 唤醒等待队列…