【Qt】QWidget的styleSheet属性

🏠个人主页:Yui_
🍑操作环境:Qt Creator
🚀所属专栏:Qt

文章目录

  • 前言
  • 1. styleSheet属性
  • 2. 利用styleSheet属性实现简单的日夜模式切换
    • 2.1 知识补充-计算机中的颜色表示
  • 3. 总结

前言

style?好像前端的style标签了
其实Qt也是又CSS(Cascding Style Sheets-层叠样式表)的,CSS本身是网页前端技术,主要就是用来描述界面的样式。
所谓的样式,包括但不限于大小,位置,颜色,间距,字体,背景,边框等等。
在我们平时看到的网页,就会用到大量的CSS。
那么和Qt有什么关系呢?
Qt作为GUI开发,其实和网页前端有很多异曲同工之处,所以呢,Qt也引入了对于CSS的支持~
但是CSS中可以设置的样式属性非常多,基于这些属性Qt只能支持其中的一部分,因此可以称为QSS。
本文仅为styleSheet属性的简单介绍,后续可能会继续详细的介绍~

1. styleSheet属性

双击fromfile的ui文件
拖动一个QLabel控件到中间界面:
image.png

然后开始查看右边对象对象栏,右击label,点击改变样式表
image.png
你可以看到这样的窗口:
image.png
然后我们设置字体为宋体,字体大小为30像素,背景为蓝色。
image.png
此处的语法格式同CSS,使用键值对的方式设置样式,其中键和值之间使用:,键值之间使用;分割。
注意:Qt Designer只能对样式的基本格式进行检验,不能检查出哪些样式不被Qt支持,比如text-align: center这样的文本居中操作就无法支持~
想要知道QSS支持哪些属性,打开Qt的官方文档搜索Qt Style Sheet
image.png
如果你像要学习一些前端的知识可以看我的前端专栏~前端_Yui_的博客-CSDN博客

2. 利用styleSheet属性实现简单的日夜模式切换

在绝大部分的软件都是支持日夜模式切换的,比如我现在正在使用的obsidian中就有深色和浅色的选择:
image.png

在编写代码前,我先告诉你一些颜色的16进制表示:

  • #333是深色
  • #fff是纯白色
  • #000是纯黑色
    下面开始编写第一版的代码:
    这是ui文件,还有文本框的内容是龙族3中我非常喜欢的一章《迎着阳光盛大逃亡》中路明非带着绘梨衣去梅津寺町在玩耍了一天后中的对话,这也是路明非和绘梨衣的最后一次见面。
    image.png
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{//切换深色模式this->setStyleSheet("background-color:#333");ui->textEdit->setStyleSheet("background-color:#333;color:#fff;");ui->pushButton->setStyleSheet("color:#fff");ui->pushButton_2->setStyleSheet("color:#fff");
}void Widget::on_pushButton_2_clicked()
{//切换浅色模式this->setStyleSheet("background-color:#fff");ui->textEdit->setStyleSheet("background-color:#fff;color:#333;");ui->pushButton->setStyleSheet("color:#333");ui->pushButton_2->setStyleSheet("color:#333");
}

来看看效果吧~
qwidget_10.gif
有点奇怪的是,在切换深色模式前的的颜色并不是纯白,所以我们还要对浅色模式进行修改。
使用取色器得知,原本的颜色的16进制为#f0f0f0
修改浅色模式代码

void Widget::on_pushButton_2_clicked()
{//切换浅色模式this->setStyleSheet("background-color:#f0f0f0");ui->textEdit->setStyleSheet("background-color:#fff;color:#333;");ui->pushButton->setStyleSheet("color:#333");ui->pushButton_2->setStyleSheet("color:#333");
}

查看效果:
qwidget_11.gif

2.1 知识补充-计算机中的颜色表示

众所周知,显示屏会显示颜色的都是由RGB三原色组成的,由它们构成我们看到的所有颜色。
如果你不了解,接下来让我们认识RGB
什么是RGB
我们的显示屏是由非常多的像素组成的,每个像素可以被视为一个极小的点,这个点能反映一个具体的颜色。我们使用R(red),G(green),B(blue)的方式来表示颜色,这三种颜色按照不同的比例搭配们就可以混合出各种颜色,使用称为3原色。
计算机中针对R\G\B三个的分量,分别使用一个字节表示(8个比特位,表示的范围是0-255,16进制表示00-FF).
数值越大,表示该分量的颜色就越浓,255,255,255表示白色,0,0,0表示黑色。

3. 总结

本文我们简单了解了Qt中的styleSheet属性,也就是Qt中的CSS简称QSS,因为CSS具有众多的格式,Qt只采用了其中的一部分功能,即使这样QSS也能帮我们完成不少效果~
最后推荐一个在线调色板网站:在线调色板,调色板工具,颜色选择器


往期文章:
【Qt】初始项目代码解释-CSDN博客
【Qt】HelloWorld程序-CSDN博客
【Qt-信号与槽】connect函数的用法-CSDN博客
【Qt】自定义信号和槽函数-CSDN博客
【Qt】带参数的信号和槽函数-CSDN博客
【Qt】qrc机制介绍_qt qrc是什么-CSDN博客
【Qt】QWidget属性2_qt 设置属性-CSDN博客

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

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

相关文章

QT Quick(C++)跨平台应用程序项目实战教程 2 — 环境搭建和项目创建

目录 引言 1. 安装Qt开发环境 1.1 下载Qt安装包 1.2 安装Qt 1.3 安装MSVC编译器 2. 创建Qt Quick项目 2.1 创建新项目 2.2 项目结构 2.3 运行项目 3. 理解项目代码 3.1 main.cpp文件 3.2 Main.qml文件 引言 在上一篇文章中,我们介绍了本教程的目标和结…

macOS Sequoia 15.3 一直弹出“xx正在访问你的屏幕”

🙅 问题描述 macOS 系统升级后(15.2或者15.3均出现过此问题),不管是截图还是开腾讯会议,只要跟捕捉屏幕有关,都一直弹出这个选项,而且所有软件我都允许访问屏幕了,这个不是询问是否…

二叉树的学习

目录 树型结构(了解) 概念 概念(重要) 树的表示形式(了解) 树的应用 二叉树(重点) 概念 两种特殊的二叉树 二叉树的性质 利用性质做题(关键) 二叉…

AbMole新生大鼠脑类器官培养Protocol

近日,希腊亚里士多德大学塞萨洛尼基分校的研究团队在《神经科学方法》(Journal of Neuroscience Methods)期刊上发表了一项引人注目的研究,他们开发了一种基于新生大鼠脑组织的新型类器官培养协议,并展望其在阿尔茨海默…

物理环境与安全

物理安全的重要性 信息系统安全战略的一个重要组成部分物理安全面临问题 环境风险不确定性人类活动的不可预知性 典型的物理安全问题 自然灾害环境因素设备安全、介质安全、传输安全 场地选择 区域:避开自然灾害高发区环境:原理可能的危险因素抗震&…

手动离线安装NextCloud插件

1、下载离线插件安装包 进入NextCloud官方插件商城:https://apps.nextcloud.com/ 选择自己需要的插件软件 选择NextCloud对应版本的插件安装包 2、解压安装 进入的到NextCloud安装目录的apps目录 cd /var/www/html/apps 将下载的xxx.tar.gz复制到apps目录中解…

算力100问☞第93问:算力资源为何更分散了?

目录 1、政策驱动与地方投资的盲目性 2、美国芯片断供与国产替代的阵痛 3、政企市场对私有云的偏好 4、技术标准与供需结构的失衡 5、产业生态与市场机制的滞后 6、破局路径与未来展望 在大模型和人工智能技术快速发展的背景下,算力资源已成为数字经济时代的核心基础设施…

基于HTML的邮件发送状态查询界面设计示例

以下是一个基于HTML的邮件发送状态查询界面设计示例&#xff0c;结合筛选功能、状态展示和重新发送操作&#xff0c;采用Bootstrap框架实现响应式布局&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"&…

分治-快速排序系列一>快速排序

目录 题目方法&#xff1a;优化方法&#xff1a;代码&#xff1a; 题目方法&#xff1a; 忘记快速排序看这里&#xff1a;链接: link 优化方法&#xff1a; 代码&#xff1a; public int[] sortArray(int[] nums) {qsort(nums,0,nums.length-1);return nums;}private void qso…

《AI大模型趣味实战 》第7集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1

AI大模型趣味实战 第7集&#xff1a;多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1 摘要 在信息爆炸的时代&#xff0c;如何高效获取和筛选感兴趣的新闻内容成为一个现实问题。本文将带领读者通过Python和Flask框架&#xff0c;结合大模型的强大…

微服务 - 中级篇

微服务 - 中级篇 一、微服务架构深化&#xff08;一&#xff09;服务拆分原则&#xff08;二&#xff09;服务通信方式 二、微服务技术选型&#xff08;一&#xff09;开发框架&#xff08;二&#xff09;容器技术 三、微服务实践与优化&#xff08;后续会详细分析&#xff09;…

STM32__红外避障模块的使用

目录 一、红外避障模块 概述 二、直接读取OUT引脚电平 三、使用中断方式触发 一、红外避障模块 概述 引脚解释&#xff1a; VCC接3.3V 或 5.0VGND接开发板的GNDOUT数字量输出(0或1&#xff09;; 低电平时表示前方有障碍 ; 通过可调电阻调整检测距离 产品特点&#xff1a; …

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek 通义万相制作AI视频流程 4.1 D…

帆软第二题 - 多源报表

第二题&#xff0c;多源报表 实现功能&#xff1a; 多源报表&#xff1a;供应商与所在地区来源于表PRODUCER 明细来源于表PRODUCT 分组报表&#xff1a;按组显示数据&#xff0c;每个供应商对应其产品明细 按组分页&#xff1a;每个供应商一页 表头重复&#xff1a; 数据…

SVN忽略不必提交的文件夹和文件方法

最近有小伙伴在问&#xff1a;SVN在提交时如何忽略不必提交的文件夹和文件&#xff0c;如node_modules&#xff0c;.git&#xff0c;.idea等&#xff1f; 操作其实很简单&#xff0c;下面直接上图&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 最后一步&#xff1a; 第…

Uthana,AI 3D角色动画生成平台

Uthana是什么 Uthana 是专注于3D角色动画生成的AI平台。平台基于简单的文字描述、参考视频或动作库搜索&#xff0c;快速为用户生成逼真的动画&#xff0c;支持适配任何骨骼结构的模型。Uthana 提供风格迁移、API集成和定制模型训练等功能&#xff0c;满足不同用户需求。平台提…

六十天前端强化训练之第二十九天之深入解析:从零构建企业级Vue项目的完整指南

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、Vite核心原理与开发优势 二、项目创建深度解析 三、配置体系深度剖析 四、企业级项目架构设计 五、性能优化实战 六、开发提效技巧 七、质量保障体系 八、扩展阅读…

Ceph集群2025(Squid版)导出高可用NFS集群(上集)

#创建一个CephFS 文件系统 ceph fs volume create cephfs02#创建子卷 ceph fs subvolumegroup create cephfs02 myfsg2#查看子卷 ceph fs subvolumegroup ls cephfs02[{"name": "myfsg2"} ]创建 NFS Ganesha 集群 #例子 $ ceph nfs cluster create <c…

第2.3节 Android生成全量和增量报告

覆盖率报告&#xff08;Coverage Report&#xff09;是一种软件测试工具生成的报告&#xff0c;用于评估测试用例对代码的覆盖程度。它通过统计代码中哪些部分已经被测试用例执行过&#xff0c;哪些部分还没有被执行&#xff0c;来衡量测试的充分性。覆盖率报告通常包括以下几种…

奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究

一、引言 本文研究了福建奇迹运动体育科技有限公司&#xff08;简称‘奇迹科技’&#xff09;如何利用其创新产品体系和桂花网蓝牙网关M1500&#xff0c;与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效&#xff0c;为…