当前位置: 首页 > 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…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...