qtdesigner界面美化

2023-11-20


前言

pyqt5能快速构建界面,但是你会发现构建出来的界面没有像我们平常用的客户端界面一样美观。现在,就让我学习一下如何美化界面。本章代码使用qtdesigner页面布局中的代码继续学习


一、QSS

QSS和CSS类似,只不过QSS适用于qt界面设计,语法上跟CSS差不多,就是选择器上有所不同

1.1、QSS选择器介绍

下面列出常用QSS选择器及其用法

Selector 示例 说明
Universal Selector * 星号匹配所有的界面元素
Type Selector QPushButton 选择所有 QPushButton类型 (包括其子类)
Class Selector .QPushButton 选择所有 QPushButton类型 ,但是不包括其子类
ID Selector QPushButton#okButton 选择所有 对象名为 okButton 的QPushButton类型
Property Selector QPushButton[flat=“false”] 选择所有 flat 属性值为 false 的 QPushButton类型。
Descendant Selector QDialog QPushButton 选择所有 QDialog 内部 QPushButton类型
Child Selector QDialog > QPushButton 选择所有 QDialog 直接子节点 QPushButton类型

2.2、使用

例如做下面一个这样的界面
在这里插入图片描述
QSS代码是在styleSheet下编写设置,这里我在主窗口(Form类)下的styleSheet。
在这里插入图片描述
注意:如果一个元素的显示样式被多层指定了, 越靠近元素本身 的选择指定,优先级越高。(例如你在主窗体类里面指定了样式,有在控件本身指定了样式,那样式以自身指定的为准)

将用户名等文本设置成蓝色,因为他们都属于控件QLabel,QSS代码如下

QLabel{
	color: rgb(85, 0, 255);
	font-size: 20px;
}

将输入框设置成圆角,且选择的时候边框变成蓝色,因为他们都属于QLineEdit,QSS代码如下:

QLineEdit{
	height: 30px;
	border-radius: 15px;
	padding-left: 10px;
}
QLineEdit:focus{
	border: 1px solid  rgb(85, 0, 255);
}

按钮设置成白底蓝字,鼠标经过的时候变成蓝底白字,因为他们都属于QButton,QSS代码如下:

QPushButton{
	border: 1px solid rgb(85, 0, 255);
	background-color: rgb(255, 255, 255);
	color: rgb(85, 0, 255);
	height: 25px;
	font-weight: 700;
}

QPushButton:hover{
	border: none;
	background-color: rgb(85, 0, 255);
	color: rgb(255, 255, 255);
}

附上完整代码:

QPushButton{
	border: 1px solid rgb(85, 0, 255);
	background-color: rgb(255, 255, 255);
	color: rgb(85, 0, 255);
	height: 25px;
	font-weight: 700;
}

QPushButton:hover{
	border: none;
	background-color: rgb(85, 0, 255);
	color: rgb(255, 255, 255);
}
QLabel{
	color: rgb(85, 0, 255);
	font-size: 20px;
}
QLineEdit{
	height: 30px;
	border-radius: 15px;
	padding-left: 10px;
}
QLineEdit:focus{
	border: 1px solid  rgb(85, 0, 255);
}

二、自定义属性

在实际应用中,不会同一种控件都是同一个样式,相反,更多的情况是同一个控件会有不同的样式。
一种方法是到对应控件里面设置样式,但是这个方法不好的地方在于不能批量设置样式。
另一种方法是通过属性来对控件进行分组设置样式,虽然可以通过系统自带属性来区分不同控件,但是一般不推荐改,这时候自定义属性就派上了用场。

2.1、添加自定义属性

选择登录按钮,然后点击加号,这里选择添加字符串,添加一个名为"class"的自定义属性,设置值为"black"
在这里插入图片描述
然后在上面代码的基础上添加一行代码

QPushButton[class='black']{
	color: black;
}

你会发现字体颜色变黑了
在这里插入图片描述
大功告成,有什么问题欢迎在评论区留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qtdesigner界面美化 的相关文章

随机推荐

  • KVM热迁移

    KVM热迁移 介绍 KVM热迁移的前提是拥有共享存储 以下通过NFS实现KVM热迁移 迁移过程 将一处于运行状态的KVM虚拟机从节点kvm 01迁移到kvm 02后继续运行 准备 主机准备 hostname IP地址 系统 配置 kvm 0
  • Docker 国内镜像地址

    http f1361db2 m daocloud io http hub mirror c 163 com https docker mirrors ustc edu cn
  • c++中的类模板

    C 的类模板为生成通用的类声明提供了一种更好的方法 模板提供参数化类型 即能够将类型名作为参数传递给接收方来建立类或者函数 一 定义类模板 include
  • IndexError: index 5 is out of bounds for axis 1 with size 5

    keras中报错 IndexError index 5 is out of bounds for axis 1 with size 5 原因 大概率是你的数据集label没有设置好 keras中数据集标签需要从0开始 并且连续 类似于下图这
  • Unity WebGL错误集锦

    ips 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace 可以在打出的包中的浏览器的webgl打印出错
  • 【计算机基础

    定点数的表示 定点数 小数点的位置固定 例 996 007 常规计数 浮点数 小数点的位置不固定 例 9 96007 10 2 科学计数法 二进制的定点数 浮点数也类似 无符号数 整个机器字长的全部二进制位均为数值位 没有符号位 相当于数的
  • 关于Linux和Shell的相关书籍

    入门类 一直认为 在一个系统上学习开发之前 首先需要熟悉这个系统的使用 鉴于天朝的国情 绝大部分人第一个接触的操作系统就是Windows 因此对于这绝大部分人来说 如果要学习Linux开发 学会使用这个系统都是必不可少的一个环节 现在的Li
  • UVa 1347 Tour

    题目 Tour 题意 来自luogu John Doe想用最小的路程游览完所有目的地 每个目的地都用坐标xi yi表示 任何两目的地的xi都不相同 两目的地之间的路程是两点之间的直线距离 John是这样走的 他从最左边的点开始 然后只能向右
  • word页码如何设置为章节加页码,例如第一章第一页1-1、第二章第一页2-1

    由于用到word页码分章节 页码的形式 从网上查了一下 质量真的很差 没有一篇文章讲清楚的 有的所答非所问 一怒之下 利用几个小时的时间解决问题并写下这篇文章 以供大家学习参考 1 word插入页码 选择包含章节号 1 1 双击页脚 点击插
  • 55黑马QT笔记之关闭子线程

    55黑马QT笔记之关闭子线程 1 这里为什么要单独写多一篇文章来说线程的关闭呢 主要是想让大家提升印象 养成资源回收的好习惯 任何时候都要想起开辟过的内存回收 这里的关闭子线程上一篇也写到了 就是利用关闭窗口时调用槽函数回收掉 2 具体步骤
  • 2023最新ChatGPT网站源码+支持GPT4+Ai绘画+用户会员套餐+邀请分佣功能+支持后台一键更新+永久更新!

    2023最新ChatGPT网站源码 支持GPT4 Ai绘画 用户会员套餐 邀请分佣功能 支持后台一键更新 永久更新 可同时 单独 开启或者关闭GPT3 5和GPT4 0两种ChatGPT提问模型 用户可切换 次数套餐也是分开的 支持手机电脑
  • News Feed 系统设计

    新鲜事系统 News Feed 什么是新鲜事 News Feed 你登陆 Facebook Twitter 朋友圈 之后看到的信息流 你的所有朋友发的信息的集合 有哪些典型的新鲜事系统 Facebook Twitter 朋友圈 RSS Re
  • Windows与Linux系统实现文件互传(通俗易懂)

    SCP指令可以实Windows系统与Linux系统之间的文件互传 引言 Windows系统文件传输到Linux系统上 先操作 Windows系统文件传输到Linux系统上 再细聊 Linux系统文件传输到Windows系统上 先操作 Lin
  • 趁着周日我卷了 uni-app《uview 狠 优秀的UI框架》

    前期回顾 手写一个服务器代码将 vue电商后台管理系统 部署上去 上线 打包 活在风浪里的博客 CSDN博客亲测可用 一定会收获颇多 1 上线vue电商后台管理项目2 手写搭建服务器并挂载 node 3 打包优化 完成上线https blo
  • Shell数组:shell数组的定义、数组长度

    Shell在编程方面比Windows批处理强大很多 无论是在循环 运算 bash支持一维数组 不支持多维数组 并且没有限定数组的大小 类似与C语言 数组元素的下标由0开始编号 获取数组中的元素要利用下标 下标可以是整数或算术表达式 其值应大
  • QGIS插件式开发(一)---PyQt5+python3.6+Pychram2017.3开发环境配置

    1 PyQt简介 PyQt是用来创建GUI应用程序的工具包 它把python和Qt成功地绑定在一起 Qt库是目前最强大的库之一 PyQt是由Phil Thompson开发 PyQt实现了一个Python模块集 它有超过300个类 将近600
  • 通过哲学家进餐问题学习线程间协作(代码实现以leetcode1226为例)

    哲学家进餐问题 代码实现以leetcode1226为例 问题场景 解决思路 解决死锁问题 代码实现 c go 代码实现以leetcode1226为例 提到多线程和锁解决问题 就想到了os中哲学家进餐问题 问题场景 回想该问题产生场景 五个哲
  • 流形学习(Manifold Learning)

    https www cnblogs com jiangxinyang p 9314256 html 1 什么是流形 流形学习的观点 认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的 由于数据内部特征的限制 一些高维中的数据会产
  • 数学(五) -- LC[415]&[455] 字符串相加与两数相加

    1 字符串相加 1 1 题目描述 给定两个字符串形式的非负整数 num1 和num2 计算它们的和并同样以字符串形式返回 你不能使用任何內建的用于处理大整数的库 比如 BigInteger 也不能直接将输入的字符串转换为整数形式 示例 1
  • qtdesigner界面美化

    文章目录 前言 一 QSS 1 1 QSS选择器介绍 2 2 使用 二 自定义属性 2 1 添加自定义属性 前言 pyqt5能快速构建界面 但是你会发现构建出来的界面没有像我们平常用的客户端界面一样美观 现在 就让我学习一下如何美化界面 本