QT中QSS设置的三种方法

news2024/12/26 0:14:49

一.什么是QSS

QSS称为Qt Style Sheets也就是Qt样式表,它可以应用于Qt部件(Widgets)和绘制元素,以定制和美化用户界面。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,

体现在选择器少,可以使用的QSS属性也要少很多,而且并不是所有的属性都可以用在Qt的所有控件上。

二.QSS三种设置方法

方法一:

1.QSS文件示例

  创建一个.qss文件,内容如下:

/* 设置窗口背景颜色和字体样式 */

QWidget {

// 背景色为绿色

    background-color: #53c23c;

    font-family: Arial;

}

/* 鼠标悬停时按钮的样式 */

// 名称为pushButton的按钮的样式

QPushButton#pushButton:hover {

// 蓝色

    background-color: #6b6bdd;

    border-color: #0056b3;

}

/* 按钮按下时的样式 */

// 名称为pushButton的按钮的样式

QPushButton#pushButton:pressed {

// 黑色

    background-color: #000000;

    border-color: #002d5c;

}

/* 设置标签的颜色和字体样式 */

QLabel {

    color: #333;

    font-size: 16px;

}

/* 只会对MyButton的实例应用红色的前景颜色,而对QPushButton的实例没有应用 */

MyButton {  

    color:red

}

2.将qss文件导入项目后

添加资源文件后的目录结构为:

使用时的路径访问为:

":/Style.qss"

3.QSS文件方式

首先将QSS写在文件中,然后利用如下的代码设置QSS:

MainWidget::MainWidget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::MainWidget)

{

//应用样式 apply the qss style

    QFile file(":/qss/Style.qss");

    file.open(QFile::ReadOnly);

    QTextStream filetext(&file);

    QString stylesheet = filetext.readAll();

    this->setStyleSheet(stylesheet);

   file.close();

}

方法二:

1.QT程序中直接设置QSS

qApplication->setStyleSheet("QPushButton { color: white }");

myPushButton->setStyleSheet("* { color: blue }");

第一条语句表示在QApplication上设置QPushButton的样式,而第二条语句表示在myPushButton对象上设置样式。最终结果会将myPushButton的前景颜色设置为蓝色。

方法三:

1.在控件界面中直接设置qss

三.QSS实际应用中要注意的地方

在使用QSS的时候遇到过一些坑,看似简单,但是如果不知道的话,还是很折磨人的:

1.使用QSS设置边框无效,例如:

border:1px solid red; //Ok

border:solid 1px red; //Error

border:red 1px solid; //Error

border:red solid 1px; //Error

设置边框颜色和像素的时候,必须是第一种顺序,而CSS中是无所谓的,至于原因, 未知。

2.QSS设置宽高无效:

在QSS中设置宽高必须要使用 min-width和min-height,max-width,max-height来设置,用width和height设置是没有任何效果的。

参考文章:https://blog.csdn.net/houxian1103/article/details/132529196

https://blog.csdn.net/houxian1103/article/details/132529196

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

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

相关文章

芯科科技为全球首批原生支持Matter-over-Thread的智能锁提供强大助力,推动Matter加速成为主流技术

智能锁领域的先锋企业U-tec和Nuki选择芯科科技解决方案,成为Matter-over-Thread应用的领先者 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)今…

重拾前端基础知识:CSS

重拾前端基础知识:CSS 前言选择器简单选择器属性选择器组合选择器 插入CSS内嵌样式(Inline Style)内部样式(Internal Style)外部样式(External Style) 层叠颜色背景颜色文本颜色RGB 颜色HEX 颜色…

SpringBoot源码解读与原理分析(三十八)SpringBoot整合WebFlux(一)WebFlux的自动装配

文章目录 前言第13章 SpringBoot整合WebFlux13.1 响应式编程与Reactor13.1.1 命令式与响应式13.1.2 异步非阻塞13.1.3 观察者模式13.1.4 响应性13.1.5 响应式流13.1.6 背压13.1.7 Reactor13.1.7.1 Publisher13.1.7.2 Subscriber13.1.7.3 Subscription13.1.7.4 Processor13.1.7.…

RuoYi-Vue-Plus功能分析-jackson配置

文章目录 前言一、配置文件二、配置类三、注解四、json工具类1. 工具内容2. 使用工具 前言 前端在给我发送请求的时候一般包含三个部分url,header,body。那么就会涉及我们后端如何接收这些请求参数并且我们处理完毕参数后前端又如何接收参数 通过url传…

源码解析篇 | YOLOv8官方源码项目目录结构解析

前言:Hello大家好,我是小哥谈。YOLOv8是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的第8个版本。YOLOv8相比于之前的版本,在检测精度和速度上都有所提升,它在各种场景下都表现出色…

初阶数据结构:栈与队列

目录 1. 简述:栈2. 栈的功能分析与实现2.1 功能分析2.2 栈的实现2.2.1 栈的结构创建与初始化2.2.2 压栈,出栈与判空:2.2.3 获取栈顶元素,检索栈的长度与栈的销毁 3. 简述:队列4. 队列的功能分析与实现4.1 队列的功能分…

基于springboot+vue的美食推荐商城

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

重塑计算:ICP 打造无限智能合约云解决方案

作者:Lynn Cadet 编译:TinTinLand 原文:https://www.hostingadvice.com/blog/internet-computer-offers-a-limitless-smart-contract-cloud-solution/ 摘要:与其前身互联网一样,区块链行业寻求引领一个新时代及其经济…

腾讯云优惠券一共有3个渠道可以领取,你知道吗?

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Ubuntu22.04下安装Spark2.4.0(Local模式)

一、版本信息 虚拟机产品:VMware Workstation 17 Pro 虚拟机版本:17.0.0 build-20800274 ISO映像文件:ubuntukylin-22.04-pro-amd64.iso Hadoop版本:Hadoop 3.1.3 JDK版本:Java JDK 1.8 Spark版本:S…

1905_ARMv7-M的堆栈寄存器

1905_ARMv7-M的堆栈寄存器 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) ARMv7-M实现了2种堆栈,分别是MSP和PSP。复位的时候默认是MSP,而当前是哪种可以通过CONTROL.SPSEL寄存器的bit来查看。 SP寄存器的最低2bit,S…

叠氮生物素,Biotin-azide ,含有生物素基团和叠氮基团

您好,欢迎来到新研之家 文章关键词:生物素-叠氮,生物素叠氮,叠氮生物素,Biotin-azide ,Azide-Biotin,Biotin-N3,N3-Biotin,908007-17-0 一、基本信息 【产品简介】&a…

根据二层封装协议决定—网络类型

目录 一、网络类型的分类 二、数据链路层协议 MA网络 以太网协议 P2P网络 一、网络类型的分类 P2P --- point to point --- 点到点网络 MA --- Multi-Access Network --- 多点接入网络 BMA --- Broadcast Multi-Access Network --- 广播型多点接入网络 NBMA --- Non-Bro…

如何更好的引导大语言模型进行编程的高效开发流程?

这张图片展示了一种如何更好地引导大语言模型进行编程的方法。 首先,最简单也是最有效的方法是让大语言模型重复运行多次,每次增加一些额外的信息,直到获得想要的结果。这种方法虽然简单,但可能需要多次尝试才能得到满意的结果。…

AI搜索工具颠覆百度搜索,直接给出结果

这可能是一款足够颠覆搜索引擎的AI工具,绝对是AI产品中的国货之光。 它就是秘塔AI搜索,主打的亮点就是没有广告,我们进入官网之后,可以在对话框输入我们想要了解的事件。 比如最近比较热门的是中国AI教父李一舟,它会执…

netlink原理及应用

什么是netlink netlink是一种基于网络的通信机制,允许内核内部、内核与用户态应用之间甚至用户态应用之间进行通信;netlink的主要作用是内核与用户态之间通信;它的思想是,基于BSD的socket使用网络框架在内核和用户态之间进行通信…

Python算法题集_括号生成

Python算法题集_括号生成 题22:括号生成1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【堆栈回溯】2) 改进版一【切片回溯】3) 改进版二【列表缓存逐层扩充】 4. 最优算法5. 相关资源 本文为Python算法题集之一的代码示例 题22&am…

#单片机(TB6600驱动42步进电机)

1.IDE:keil 2.设备:保密 3.实验:使用单片机通过普通IO口控制TB6600驱动42步进电机 4.时序图: TB6600 ENA、ENA-DIR-、DIRPUL-、PULB-、BA、A-VCC、GND使能电机(直接悬空不接)方向脉冲输入(普通IO口模拟即可&#xff…

回归啦!!!

消失的日子在实习,今天最后一天了来看看自己的学习日志,有没有可以和小伙伴交流的部分吧! 目录 一、产品one ①简介 ②底层原理 ③知识点一 作用一:日志采集 作用二:实时监测 作用三:规则匹配 作用…

足底筋膜炎的症状及治疗

足底筋膜炎症状:足底筋膜炎通常表现为足跟部疼痛,尤其是在晨起或长时间站立、行走后加重。疼痛可能向足底前部或足弓处放射,严重时可能影响行走。此外,患者还可能出现足跟部肿胀、皮肤温度升高、局部压痛等症状。 足底筋膜炎治疗方…