QSS样式表的使用

news2024/10/7 6:44:39

QSS样式表的使用

  • Chapter1 【Qt】样式表的使用——设置样式的方法
    • 一、简述
    • 二、开始总结
      • 1、先谈谈我们设置样式有几种方法
      • 2、再谈谈这几种设置样式方法的优缺点
    • 个人建议
  • Chapter2 Qt样式表总结
  • Chapter3 【QT】史上最全最详细的QSS样式表用法及用例说明
  • Chapter4 Qt样式表使用总结1,常用样式表设置方法
  • Chapter5 QT开发(六十四)——QT样式表(二)
  • Chapter6 QSS样式表汇总
  • Chapter7 Qt 样式表之QSS


RGB颜色对照表网:https://tool.oschina.net/commons?type=3
该网站能很方便的选取各种预置颜色,还可以通过工具微调。
在这里插入图片描述

Chapter1 【Qt】样式表的使用——设置样式的方法

原文链接:https://blog.csdn.net/weixin_41838721/article/details/123323206

一、简述

我们通常在使用Qt开发的过程中都会使用样式表来美化我们的界面,关于如何使用样式表的资料也很多,样式表的使用方法也千变万化。为了搭建一个漂亮的界面那么必须学会如何使用样式表,Qt帮助文档中提供了非常好的例子以及详细介绍,非常适合学习。同时呢,也不能光看文档中是如何设置样式,我们要亲自动手做一遍才能理解得更加透彻,好了闲话不多说,下面就我在日常开发过程中对样式表的使用做一下简单的总结。

二、开始总结

1、先谈谈我们设置样式有几种方法

(a)、最简单,也是最直接——在Qt Designer 中添加样式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我们在编辑框中添加需要的样式即可,然后点击确定我们就可以看到设置的效果了,这里我们只对QPushButton设置了样式,那我们是不是对界面上每个控件都要单独设置样式呢?

当然不需要,我们可以对整个界面设置样式,然后将所有控件的样式都写在其中就可以了。

在这里插入图片描述
Qt的样式表编辑工具可以帮助我们检验样式是否编写正确。
在这里插入图片描述
我们看到下面设置的样式有误,并没有检测出来,但是这里的错误只会影响这一条样式无效,而不会导致整个样式无效。我们看到右边这张图片QPushButton,虽然样式写的有问题,但是还是设置了按钮的背景色和字体的大小。所以这里不是所有问题都能检测出来,如果发现设置的样式与显示效果不一致,那就需要好好检查一下样式写的是否正确。
在这里插入图片描述
在这里插入图片描述
(b)、在代码中添加样式
// 对单个控件;

ui.pushButton->setStyleSheet("QPushButton{border-radius:5px;background:rgb(150, 190, 60);color:red;font-size:15px;}")

// 对整个界面(包括界面上所有的控件)

this->setStyleSheet("QPushButton{border-radius:5px;background:rgb(150, 190, 60);color:red;font-size:15px; \
QToolButton{border-radius:5px;background:rgb(34, 231, 131);color:brown;font-size:15px;}")

在代码中我们直接调用setStyleSheet方法即可对控件或者整个界面设置样式。

(c)、将样式写在文件中,通过读取文件的方式设置样式
将样式保存在MyStyle.qss文件中。
在这里插入图片描述
通过以下代码将MyStyle.qss文件中的样式读取出来,然后调用setStyleSheet方法设置样式。

void loadStyleSheet(const QString &sheetName)
{
    QFile file(sheetName);
    file.open(QFile::ReadOnly);
    if (file.isOpen())
    {
        QString styleSheet = this->styleSheet();
        styleSheet += QLatin1String(file.readAll());
        this->setStyleSheet(styleSheet);
    }
}

2、再谈谈这几种设置样式方法的优缺点

(a)、最简单,也是最直接——在Qt Designer 中添加样式
优点:通过这种方法我们对于设置完样式可以立马显示出效果(不需要编译再运行),也可以检测当前样式是否编写错误(只能简单判断,并不能对所有情况进行判断)。同时Qt Designer也可以帮助我们快速添加样式,见下图。
在这里插入图片描述
缺点:个人感觉在Qt Designer中编写样式不是很清晰,尤其是在样式比较多时,不利于检查样式是否编写错误。同时不可以二次修改,即界面显示完毕后无法通过此方法修改界面的样式,只能靠代码去修改。

(b)、在代码中添加样式
优点:此种方法很方便,也很快捷。可以随时设置样式,改变样式,根据不同条件设置不同的样式,而不像第一、第三种方法直接设置固定样式。

缺点:当样式内容较复杂时,不利于查看,同时可能为了编码风格美观需要将样式内容换行等,这样可能会导致样式错误,根本没有效果,导致需要多次调试,浪费不必要的时间。

(c)、将样式写在文件中,通过读取文件的方式设置样式
优点:这种方法在界面样式较复杂时,我们在文件中编写样式,内容比较清晰,样式编写格式错误更加明显。同时也便于修改,同时一些文件编辑器能够自动给出样式输入提示,提供高编码效率。

缺点:一般样式表文件都会加载到程序资源文件中,所以这里需要单独加载一个文件。同时跟第一种方法一样,不可以二次修改,当界面显示完毕后,只能靠调用setStyleSheet方法再次修改。

个人建议

一般来说,我们会将第二种和第三种方法结合起来使用。通常将整个界面的样式写在文件中,在界面初始化时读取并通过setStyleSheet方法设置,如果在显示界面以后,有一些控件需要变换样式的话在代码中可以单独给某一个控件调用setStyleSheet方法进行重新设置样式。同时非常需要注意的一点是,样式的设置以最后一次设置为准,因为每次设置(调用setStyleSheet(“样式”))都会覆盖之前一次设置的样式,或者如果不需要覆盖之前的样式可以这样写:

void setNewStyleSheet(QString styleSheet)
{
    //获取到原来的样式
     QString oldStyleSheet = this->styleSheet();
     styleSheet += oldStyleSheet;
     this->setStyleSheet(styleSheet);
}

第一种方法适合检测我们写的样式有没有错误,能够立即看到效果,如果我们发现在代码中设置样式,总是显示不了效果(每次修改都需要重新编译,耗时),可以现在Qt Designer中测试一下样式是否正确,在Qt Designer中修改正确后可以移至代码中。

原文:https://www.cnblogs.com/lifan3a/articles/8441175.html

常见样式

padding:7px; //图片与边框间距
image: url(:/buttonPicture/Image/xxx.png); //图片

Chapter2 Qt样式表总结

https://blog.csdn.net/qq_25800311/article/details/109549296

Chapter3 【QT】史上最全最详细的QSS样式表用法及用例说明

https://blog.csdn.net/WL0616/article/details/129118087

Chapter4 Qt样式表使用总结1,常用样式表设置方法

https://blog.csdn.net/dpsying/article/details/100160545

Chapter5 QT开发(六十四)——QT样式表(二)

https://blog.csdn.net/weixin_33757609/article/details/92651435

Chapter6 QSS样式表汇总

https://blog.csdn.net/LearnLHC/article/details/108669612

Chapter7 Qt 样式表之QSS

https://blog.csdn.net/qq_34139994/article/details/114537439

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

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

相关文章

计算机的计算单位

文章目录 前言一、容量单位二、速度单位1.网络速度2.CPU频率 总结 前言 今天给大家介绍计算机的计算单位,分为两个板块:容量单位、速度单位。 一、容量单位 对于容量单位,大家在日常生活中应该都有所了解,比如说 768M 的光盘、4…

内网穿透的应用-使用eXtplorer本地搭建免费在线文件管理器并实现远程登录

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

PMP考试知识点(干货码住)

一、需要记忆的公式 1. 三点估算是指通过期望值、标准差和方差来进行估算的方法; 2. 关键路径计算包括ES、EF、LS、LF、总浮动时间和自由浮动时间等指标; 3. 挣值计算是一种常用的项目管理方法,包括CPI、SPI、ETC、EAC和TCPI等指标&#x…

为什么MyBatis是Java数据库持久层的明智选择

在Java应用程序的开发中,选择合适的数据库持久层框架至关重要。一个明智的选择可以帮助开发人员更好地管理数据库交互、提高性能和简化开发工作。 (一)为什么要选MyBatis JDBCHibernate / JPAMyBatis简单直接ORM轻量动态SQL关联查询开发效率…

VAE模型(详细推导+实例代码)

文章目录 EM算法思路E步M步直观感觉 GMM模型VAEVAE思想从GMM到VAE公式推导重参数VAE神经网络另一个视角的VAE思想为什么引入encoder为什么要重参数噪声与重建 Discrete VAE 本文会从EM算法,GMM模型一步一步的的推导,在过渡到VAE模型,如果有熟…

博华网龙设备命令执行漏洞复现 [附POC]

文章目录 博华网龙设备命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 博华网龙设备命令执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试&…

【Vue】之Vuex的入门使用,取值,修改值,同异步请求处理---保姆级别教学

一,Vuex入门 1.1 什么是Vuex Vuex是一个专门为Vue.js应用程序开发的状态管理库。它用于管理应用程序中的共享状态,它采用集中式存储管理应用的所有组件的状态,使得状态的管理变得简单和可预测 官方解释:Vuex 是一个专为 Vue.js 应…

Python数据分析实战-实现Kruskal-Wallis H检验(附源码和实现效果)

实现功能 当需要比较多个(大于两个)独立样本之间的差异时,可以使用非参数的Kruskal-Wallis H检验。Kruskal-Wallis H检验是一种非参数的方差分析方法,用于检验多个独立样本是否来自于相同的总体分布。 在Python中,你…

英国生物技术公司【AstronauTx】完成4800万英镑A轮融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于英国伦敦的生物技术公司【AstronauTx】今日宣布已完成4800万英镑A轮融资 。 本轮融资由诺华风险基金领投,布兰登资本(Brandon Capital)、MPM Capital、…

产品经理视角 | API接口知识小结

应用程序接口API(Application Programming Interface),是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统(中后台系统)或后台不同系统之间的交互点。包括外部接口、内部接口&#xf…

下一代Docker来了,会让部署更加丝滑吗?

下一代Docker来了,会让部署更加丝滑吗? 目录 一、Docker是什么? 二、Docker 的几个名词概念 2.1、镜像(Image) 2.2、容器 (Container) 2.3、仓库 (Repository) 三、容器和虚拟机比较 四、Docker 运行环境 五、…

因子分析(SPSS和Python)

一、源数据 二、SPSS因子分析 2.1.导入数据 2.2.标准化处理 由于指标的量纲不同(单位不一致),因此,需要对数据进行标准化处理 2.3.因子分析 点击“确定”后,再回到“总方差解释”表格,以“旋转载荷平方和…

Java 基于SpringBoot的某家乡美食系统

1 简介 《Java 基于SpringBoot的某家乡美食系统》该项目含有源码、文档等资料、配套开发软件、软件安装教程等。系统功能完整,适合作为毕业设计、课程设计、数据库大作业学习使用。 功能介绍 这个项目是基于 SpringBoot和 Vue 开发的地方美食系统,包括…

STM32F4X I2C LM75

STM32F4X I2C LM75 I2C协议讲解I2C接线I2C协议波形I2C起始信号I2C停止信号I2C应答信号I2C寻址I2C地址格式 I2C数据传输 LM75ALM75A介绍LM75A引脚说明LM75A地址LM75A寄存器LM75A I2C协议写配置寄存器读配置寄存器写Tos和Thyst寄存器读Tos Thyst Temp寄存器LM75A温度计算 LM75A例…

帆软报表之填报报表

1、配置数据源 URL填充格式:jdbc:mysql://127.0.0.1:3306/yq_iwater_ads 2、新建普通报表,配置数据库查询 3、编辑单元格 3.1、插入公式 ‘每月营业厅情况统计\n’ replace($month_id,‘-’,‘年’)‘月’ 3.2、插入数据列 3.3、关联数据列 3.4、隐藏不…

【java学习】面向对象特征之一:封装和隐藏(23)

文章目录 信息的封装和隐藏 信息的封装和隐藏 Java 中通过将数据声明为私有的 (private) 变量, 再提供 公共的( public )方法 :getXxx() 和 setXxx() 实现对该属性的操作,以实现下述目的: 隐藏一个类中不需…

LeetCode【100】单词拆分

题目&#xff1a; 代码&#xff1a; public boolean wordBreak(String s, List<String> wordDict) {Set<String> dictSet new HashSet<>(wordDict);boolean[] dp new boolean[s.length() 1]; // dp问题均是&#xff0c;先构造dp数组&#xff0c;大小为…

vue实现搜索文字高亮功能

在前端开发中&#xff0c;要实现文字搜索高亮效果&#xff0c;你可以使用JavaScript来搜索文本并通过CSS或其他方式对匹配的文本进行高亮处理。以下是一种常见的方法&#xff1a; 实现步骤&#xff1a; 1、 获取用户输入的搜索词。 2、创建一个正则表达式&#xff0c;以全局&am…

分享一下微信付费文章功能怎么做

微信付费文章功能是一种基于微信公众号的文章付费阅读模式&#xff0c;它可以帮助公众号运营者实现文章内容的变现&#xff0c;提高文章的阅读量和收益。本文将介绍微信付费文章功能的制作流程、功能特点、使用流程和推广策略&#xff0c;帮助读者了解如何制作一个高效的微信付…

嵌入式C语言自我修养《内存堆栈管理》学习笔记

目录 一、Linux环境下的内存管理 二、栈的管理 三、堆内存管理 四、mmap映射区 五、内存泄漏与防范 六、常见的内存错误及检测 C程序中定义的函数、全局变量、静态变量经过编译链接后&#xff0c;分别以section的形式存储在可执行文件的代码段、数据段和BSS段中。当程序运…