【PyQt5教程 四】Qt Designer 样式表(styleSheet)实现基本小部件的自定义动态效果和资源浏览器背景添加方法
目录
一、成果演示:
二、样式表的使用方法:
(1)样式表语法和属性:
(2)样式表代码示例:
(3)伪类和状态:
(4)复合选择器:
三、样式表使用示例:
(1)打开Qt Designer:
编辑
(2)编写样式:
四、背景添加方法:
(1)直接法:
(2)小部件法:
一、成果演示:
当鼠标悬停在按钮上或按钮被按下时,改变按钮的颜色与圆角边框大小。这种方法完全通过改变Qt Designer样式表(styleSheet)来实现,不需要编写额外的代码。
小部件的自定义动态效果
二、样式表的使用方法:
(1)样式表语法和属性:
样式表的规则由选择器和声明组成。选择器指定哪些小部件受规则影响;声明指定应该在小部件上设置哪些属性。
常用属性包括:
background-color
:设置背景颜色。color
:设置前景色,通常是文本颜色。border
:设置边框的宽度、样式和颜色。font
:设置字体样式。padding
:设置内边距。margin
:设置外边距。
(2)样式表代码示例:
简单示例如下,用于设置QPushButton的背景色和文本颜色:
QPushButton {background-color: rgb(170, 0, 0);color: white;
}
上面的示例中,QPushButton
是选择器,{ background-color: rgb(170, 0, 0); color: white; }
是声明部分,分别设置了按钮的背景色和文本颜色。
(3)伪类和状态:
Qt样式表(QSS)中支持的伪状态非常丰富,以下是总结的一些常见的伪状态:
active
:部件处于活动状态时应用的样式。adjoins-item
:当QTreeView的::branch
与某个item相邻时,将设置此状态。alternate
:如果设置了QAbstractItemView::alternatingRowColors(true)
隔行变色,那么设置隔行的item。bottom
:此item位于底部。例如,QTabBar有位于底部的选项卡。checked
:项目被选中的状态。closable
:项目处于可以关闭的状态,例如,QDockWidget启用了QDockWidget::DockWidgetClosable
功能。closed
:项目处于的关闭状态。如QTreeView中的非展开项。default
:控件的默认状态。例如,一个default的QPushButton
或QMenu
中的一个默认动作。disabled
:此item被禁用时的状态。editable
:如QComboBox
是可编辑的。edit-focus
:此item具有编辑焦点(参考QStyle::State_HasEditFocus
)。此状态仅对Qt扩展应用程序可用。enabled
:此item已启用。exclusive
:此item是一个独占项组的一部分。例如,独占QActionGroup
中的菜单项。first
:此item是列表中的第一项。例如,QTabBar
中的第一个选项卡。focus
:控件获得焦点时的样式。hover
:鼠标悬停在控件上时的样式。indeterminate
:控件处于不确定状态时的样式,如三态复选框。last
:此item是列表中的最后一项。left
:此item位于左侧。middle
:此item位于列表中间。off
:控件处于关闭状态时的样式。on
:控件处于开启状态时的样式。only-one
:此item是列表中唯一的一项。pressed
:控件被按下时的样式。right
:此item位于右侧。selected
:项目被选中时的样式。
使用方法示例:
QPushButton {background-color: #0055ff; color: white; /* 白色字体 */border-radius: 15px; /* 圆角边框 */
}QPushButton:hover {
/* 鼠标悬停时的背景颜色 */
background-color : #5555ff;
border-color : #5555ff;
border-radius: 10px; /* 圆角边框 */}QPushButton:pressed {
/* 按钮被按下时的背景颜色 */
background-color : #00aaff;
border-color : #00aaff;
border-radius: 14px; /* 圆角边框 */
}
(4)复合选择器:
可以为同一个声明指定多个选择器,使用逗号(,)分隔选择器。例如,为QLineEdit和QComboBox设置相同的边框样式:
.QLineEdit, .QComboBox {border: 1px solid gray;background-color: white;
}
三、样式表使用示例:
(1)打开Qt Designer:
- 添加想要更改样式的小部件。
【PyQt5教程 一】Qt Designer 安装及其使用方法说明,附程序源码
以PushButton按钮为例:
调整想要的按键大小及位置:
填写样式表:
对于需要修改样式的单个控件,你可以右键单击该控件,然后选择“改变样式表...”选项。在弹出的编辑样式表窗口中,添加对应的样式表内容。
方法一:
方法二:
(2)编写样式:
QPushButton {background-color: #0055ff; /* 背景颜色 */color: white; /* 白色字体 */border-radius: 15px; /* 圆角边框 */
}QPushButton:hover {
/* 鼠标悬停时的背景颜色 */
background-color : #5555ff; /* 背景颜色 */
border-color : #5555ff; /* 边框颜色 */
border-radius: 10px; /* 圆角边框 */}QPushButton:pressed {
/* 按钮被按下时的背景颜色 */
background-color : #00aaff; /* 背景颜色 */
border-color : #00aaff; /* 边框颜色 */
border-radius: 14px; /* 圆角边框 */
}
点击浏览查看效果:
按钮浏览
四、背景添加方法:
(1)直接法:
直接给当前页添加背景。
所存在的问题:位于该页上的小部件,由于存在继承的关系,小部件将继承该页的背景。
如下:
(2)小部件法:
调整小部件大小:
放置到后面:
添加背景颜色:
其他小部件样式配置方法同按钮样式配置方法相同。
效果如下:
(3)从资源浏览器中添加图片背景:
首先新建资源文件夹用于存放资源文件:
保存到对应的程序目录下:
添加前缀名:
添加文件:
应用图片:
相关文章:

【PyQt5教程 四】Qt Designer 样式表(styleSheet)实现基本小部件的自定义动态效果和资源浏览器背景添加方法
目录 一、成果演示: 二、样式表的使用方法: (1)样式表语法和属性: (2)样式表代码示例: (3)伪类和状态: (4)复合选择器ÿ…...

【git】--- 通过 git 和 gitolite 管理单仓库的 SDK
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【git】--- 通过 git 和 gitolite 管理单仓库的 SDK 开发环境一、安装配置 gitolite二…...

计算机网络之NAT、代理服务、内网穿透、内网打洞
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之NAT、代理服务、内网穿透、内网打洞 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论…...

2024-金盾信安杯线上赛 WP
Misc 大赛宗旨 记事本打开,一眼零宽隐写 B 神工具一把梭,得到一串 base 编码 base64 解码得到 flag flag 值:flag{5d5555fa-1303-4b43-8eef-d6ea7c64c361} esab 根据题目 esab 可以发现这正是 base 的逆向,所以可以先逆向一下…...
MySQL 基础架构
MySQL的基础架构主要由三大核心部分构成,以下是详细的解析: 一、连接层 连接层是客户端与MySQL数据库之间的桥梁,主要负责通信和身份验证,确保数据交换的安全与稳定。具体来说,它负责以下任务: 建立连接…...

汽车升级到底应不应该设置“可取消“功能
最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…...
【MySQL】mysql中的事务
目录 1、背景2、事务的特性3、事务之间的几种错误【1】脏读【2】不可重复读【3】幻读 4、事务中的隔离级别5、总结 1、背景 事务是存储引擎层面实现的,有的引擎支持事务,有的引擎不支持事务,我们常用的引擎InnoDB就支持事务,本文…...

大语言模型(LLM)与智能机器人的应用分析
系列文章目录 前言 近年来,大型语言模型(LLM)的集成彻底改变了机器人领域,使机器人能够以人类熟练程度进行交流、理解和推理。本文探讨了 LLM 对机器人的多方面影响,并针对在不同领域利用这些模型的关键挑战和机遇进行了研究。通过将 LLM 应用程序分类并分析核心机器人元素…...
Inno Setup 学习笔记(一)
前言 最近想把自己写的Windows端的软件打包成安装程序exe,又觉得自带的界面太丑了,想自己完全做一个新的页面 网上找到的只有基础教程,记录一下进阶学习过程 生命周期 按照Vue的说法叫生命周期,Inno Setup中叫 Pascal 脚本: 事…...
从阿里云EDM到美团云:典型微服务治理平台的实战经验分享
目录 一. 阿里云 EDM(Enterprise Distributed Application Service) 二. 腾讯云 TSF(Tencent Service Framework) 三. 华为云 FusionStage 四. 京东云 JDC(JD Cloud Microservice Platform) 五. 百度智…...

【接口自动化测试】一文从3000字从0到1详解接口测试用例设计
接口自动化测试是软件测试中的一种重要手段,它能有效提高测试效率和测试覆盖率。在进行接口自动化测试之前,首先需要进行接口测试用例的设计。本文将从0到1详细且规范的介绍接口测试用例设计的过程,帮助读者快速掌握这一技能。 一、了解接口…...

反向代理-缓存篇
文章目录 强缓存一、Expires(http1.0 规范)二、cache-control(http1.1 出现的 header 信息)Cache-Control 的常用选项Cache-Control 常用选项的选择三、弊端协商缓存一、ETag二、If-None-Match三、Last-modified四、If-Modified-Since浏览器的三种刷新方式静态资源部署策略…...

【伪代码】数据结构-期末复习 线性表
目录 例1 矩阵相乘 线性表 2.1 线性表的类型定义 例2-1 求并集 LALA∪LB 例2-2 有序表归并 2. 2 线性表的顺序表示和实现 1.构造空表 2.插入 3.删除 4.定位 顺序表的优点: 顺序表的缺点: 例…...

JavaWeb学习、过滤器、ajax异步请求、json、jquery-api文档
一、过滤器: 按照过滤规则筛选出想要的资源。 为什么使用过滤器? 1. 很多地方都需要判断是否登录。如果我们在每个资源出进行判断,非常麻烦。我们可以使用过滤器在访问这些资源前进行判断。 (这样就不用在主界面,修改…...

深入探索 JVM:原理、机制与实战
一、JVM 概述 JVM(Java Virtual Machine)是 Java 程序运行的核心组件,它提供了一个独立于硬件和操作系统的执行环境,使得 Java 程序能够在不同平台上具有跨平台的特性。 JVM 主要由以下几部分组成: 类装载器…...

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))
目录 一、Servlet详细。 (1)基本介绍。 (2)基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 (1)实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…...

支付宝租赁小程序助力便捷生活新方式
内容概要 支付宝租赁小程序为现代人带来了许多惊喜,它不仅仅是一个简单的租赁平台,更是生活中不可或缺的好帮手。想象一下,无论你缺少什么,从工具到家居用品,只需轻轻一点,便能轻松找到需要的物品。这个小…...

Linux-ubuntu环境配置
一,安装VWware,里面导入镜像文件 这些都是文件夹里面有的,然后对着正点原子视频安装就行,虚拟机的破解码,去百度搜一个能用就行,中间遇见俩问题。①乌班图里面不能上网,②插入U盘后,…...

深入解析下oracle的number底层存储格式
oracle数据库中,number数据类型用来存储数值数据,它既可以存储负数数值,也可以存储正数数值。相对于其他类型数据,number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...
nginx代理rabbitmq和配置 Nginx 代理达梦数据库
在 Nginx 中使用 stream 模块进行 TCP 代理时,可以将 TCP 或 UDP 流量转发到指定的后端服务器。你给出的配置是一个用于代理 RabbitMQ 的示例,具体是在 TCP 层上代理 5672 端口的流量。 只能在nginx.conf配置上代理 stream {# 定义 upstream,…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...

使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...

Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
比特币:固若金汤的数字堡垒与它的四道防线
第一道防线:机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”(Hashing)就是一种军事级的加密术(SHA-256),能将信函内容(交易细节…...
【Java基础】向上转型(Upcasting)和向下转型(Downcasting)
在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...