当前位置: 首页 > news >正文

【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的QPushButtonQMenu中的一个默认动作。
  • 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)复合选择器&#xff…...

【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 主要由以下几部分组成: 类装载器&#xf…...

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&#xff0c…...

开源AI工具链ClawForge:从本地模型部署到Agent开发的平民化实践

1. 项目概述:从“ClawForge”看开源AI工具链的平民化实践 最近在GitHub上看到一个挺有意思的项目,叫“ClawForge”。光看名字,你可能会联想到“锻造爪子”,有点神秘又带点力量感。实际上,这是一个围绕开源大语言模型&a…...

告别XML解析焦虑:用TinyXML2在C++项目中轻松读写配置文件(附完整代码)

告别XML解析焦虑:用TinyXML2在C项目中轻松读写配置文件(附完整代码) 在C开发中,配置文件管理是每个项目都无法绕开的环节。当我们需要保存用户偏好、游戏设置或系统参数时,选择一种合适的配置格式往往成为第一个技术决…...

Neoscroll.nvim调试技巧:解决滚动异常的常见问题指南

Neoscroll.nvim调试技巧:解决滚动异常的常见问题指南 【免费下载链接】neoscroll.nvim Smooth scrolling neovim plugin written in lua 项目地址: https://gitcode.com/gh_mirrors/ne/neoscroll.nvim 作为一款优秀的平滑滚动插件,Neoscroll.nvim…...

你的串口通信稳定吗?STM32CubeMX配置USART1的避坑指南与稳定性测试

STM32串口通信稳定性实战:从配置陷阱到压力测试全解析 当你的嵌入式设备在实验室运行良好,却在现场频繁出现数据丢失或乱码时,问题往往出在那些容易被忽视的细节上。串口通信作为嵌入式系统中最基础的调试与数据交互接口,其稳定性…...

BetterNCM安装器:3分钟解锁网易云音乐隐藏功能

BetterNCM安装器:3分钟解锁网易云音乐隐藏功能 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐PC版功能单一而烦恼?BetterNCM安装器就是你需要…...

华为光猫配置解密工具:网络运维的终极解决方案

华为光猫配置解密工具:网络运维的终极解决方案 【免费下载链接】HuaWei-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/hu/HuaWei-Optical-Network-Terminal-Decoder 华为光猫配置解密工具是一款专为网络工程师和运维人员设计…...

免费LLM API集成实战:从选型到构建高可用AI服务

1. 项目概述:一个汇聚免费LLM API的宝藏仓库如果你正在开发一个需要AI对话、文本生成或代码补全功能的应用,但又被高昂的API调用费用或复杂的申请流程劝退,那么你很可能需要这个项目。Clovenhoofed-loadingarea139/awesome-free-llm-apis是一…...

Seraphine:英雄联盟玩家的智能数据助手,三步解锁游戏信息优势

Seraphine:英雄联盟玩家的智能数据助手,三步解锁游戏信息优势 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟的竞技世界中,信息就是力量。Seraphine是一款基于英…...

第三篇:变量

一.变量 1.变量的创建 (1)语法格式:data_type name; 补充:其中“data_type"是数据类型,”name"是变量名,变量名根据需求随意取即可,但尽量取得有意义 例如:int age 10;(创…...

Navicat Mac版无限重置试用期的终极指南:3种简单方法破解14天限制

Navicat Mac版无限重置试用期的终极指南:3种简单方法破解14天限制 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac …...