qt “美颜”

要想成为一名优秀的qt工程师 学会使用qss编程也是重要的 不可获缺的一部分

qss 简介和优势

QSS(Qt Style Sheets)是一种用于定义Qt应用程序界面外观和样式的样式表语言。它类似于CSS(层叠样式表),但针对Qt框架进行了定制和扩展。同时也支持qss和C++的混合编程

通过使用QSS,你可以轻松地自定义Qt应用程序的外观,包括窗口、控件、布局等元素的样式、颜色、字体等属性。以下是一些关键特点和用途:

  1. 选择器:QSS允许你使用类似CSS的选择器来选取目标控件或控件类型,并为其设置样式。例如,.QPushButton表示所有QPushButton按钮。

  2. 属性设置:可以使用QSS为控件设置各种属性,如背景颜色、文本颜色、边框样式、边距等。例如,background-color: red;将按钮的背景色设置为红色。

  3. 继承与层叠:可以通过继承和层叠概念在不同级别上对控件进行样式设置。这意味着你可以在全局范围内设置默认样式,并在特定的控件上进行覆盖或添加附加样式。

  4. 动态效果:QSS还支持一些动态效果,如鼠标悬停、按下等状态下的样式变化。这使得你可以根据用户交互和状态更改控件的外观。

使用QSS可以带来以下优势:

  • 一致性:通过统一的样式表,可以确保应用程序中所有控件的外观保持一致。

  • 可定制性:你可以根据设计需求自由定制控件的样式,使其与应用程序风格匹配。

  • 灵活性:可以轻松修改和调整样式,而无需更改底层代码。这使得界面的迭代和主题切换变得简单。

  • 分离设计与逻辑:将界面设计与业务逻辑分离,开发人员和设计师可以并行工作,并独立进行修改和更新。

在Qt框架中,你可以通过在应用程序或窗口上设置QSS样式表来应用样式。使用setStyleSheet()函数将QSS样式表应用于特定的部件或全局范围。

掌握setStyleSheet(样式表函数)就可以掌握qss编程的一大半了

setStyleSheet的语法格式实例:

 ui->pushButton_Ok->setStyleSheet("QPushButton{background-color:#66ffff;border-radius:5px;text-align:center;font-size:16;color:gray;}""QPushButton:hover{background-color:#66ff11;border-radius:5px;text-align:center;font-size:16;color:yellow;}""QPushButton:pressed{background-color:#6600ff;border-radius:5px;text-align:center;font-size:16;color:red;}""QPushButton:disabled{background-color:#00ffff;border-radius:5px;text-align:center;font-size:16;color:green;}");

下面小编来描述一下这段代码 :

这段代码主要讲的是ui界面获取按钮控件 其对象名称是pushButton_Ok  控件采用setStyleSheet函数来美化 

background-color 背景颜色 #66ffff是对应颜色的16进制

border-radius 意思是方框的圆角设置为5像素 

text-align:center 文本居中对齐 

font-size: 16 设置字体大小为16

color:red 设置字体颜色为red

总体:

  • 默认状态下,背景色为#66ffff,边框圆角为5px,文本居中对齐,字体大小为16,颜色为灰色。
  • 鼠标悬停时(hover),背景色变为#66ff11,其余样式与默认状态相同。
  • 按钮被按下时(press),背景色变为#6600ff,其余样式与默认状态相同。
  • 按钮被禁用时(disabled),背景色变为#00ffff,其余样式与默认状态相同。

这段代码设置了按钮在不同鼠标事件下的状态以及按钮的外观 圆角  能够很好的美化控件

美化前的效果:

以下是美化后的效果: 

怎么样 是不是一目了然

现在来看一下qss的具体应用:

#include <QtWidgets>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个QPushButton对象QPushButton button("Click me!");// 使用QSS设置按钮的样式button.setStyleSheet("QPushButton {""    background-color: #4CAF50;""    color: white;""    padding: 10px;""}""QPushButton:hover {""    background-color: #45a049;""}""QPushButton:pressed {""    background-color: #367c39;""}");button.show();return app.exec();
}

上述代码创建了一个带有"Click me!"文本的按钮,并使用QSS设置了按钮的背景颜色、字体颜色以及鼠标交互效果。

总结:本篇文章主要讲述了qss编程的应用 他的语法类似于前端开发中的css 但是又不是完全一样在qt开发中常常用qss的技术来美化控件 使得控件更好看 美丽 核心语法就是样式表 弄懂即可 

好了 本篇文章就到这里 在这里小编想向大家推荐一个课程 :
https://xxetb.xetslk.com/s/2PjJ3T

祝大家生活愉快

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

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

相关文章

每日五道java面试题之java基础篇(七)

第一题. HashMap和HashTable有什么区别&#xff1f;其底层实现是什么&#xff1f; 区别 &#xff1a; HashMap⽅法没有synchronized修饰&#xff0c;线程⾮安全&#xff0c;HashTable线程安全&#xff1b;HashMap允许key和value为null&#xff0c;⽽HashTable不允许 底层实现…

(十五)springboot实战——spring securtity的核心过滤器介绍

前言 本节内容主要介绍spring securtity安全框架的一些核心过滤器及其作用&#xff0c;我们都清楚spring securtity安全框架底层是基于filter过滤器实现的&#xff0c;采用的是责任链的设计模式&#xff0c;它有一条很长的过滤器链。本次spring securtity原理介绍使用的版本是…

H12-821_31

31.下面是一台路由器的部分配置,关于该配置描述正确的是: A.源地址为1.1.1.1的数据包匹配第一条ACL语句rule 0,匹配规则为允许 B.源地址为1.1.1.3的数据包匹配第三条ACL语句rule 2,匹配规则为拒绝 C.源地址为1.1.1.4的数据包匹配第四条ACL语句rule 3,匹配规则为允许 D.源地址为…

Android13多媒体框架概览

Android13多媒体框架概览 Android 多媒体框架 Android 多媒体框架旨在为 Java 服务提供可靠的接口。它是一个系统&#xff0c;包括多媒体应用程序、框架、OpenCore 引擎、音频/视频/输入的硬件设备&#xff0c;输出设备以及一些核心动态库&#xff0c;比如 libmedia、libmedi…

探索Gorm - Golang流行的数据库ORM框架

&#x1f3f7;️个人主页&#xff1a;鼠鼠我捏&#xff0c;要死了捏的主页 &#x1f3f7;️系列专栏&#xff1a;Golang全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

多态

多态的基本语法 多态分为两类 静态多态: 函数重载 和 运算符重载属于静态多态&#xff0c;复用函数名动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别&#xff1a; 静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确…

中科大计网学习记录笔记(十):P2P 应用

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

Centos7离线安装MySQL5.7

卸载mariadb rpm -e --nodeps mariadb-libs可以使用rpm -qa|grep mariadb命令检测是否卸载完成。 关闭selinux 将/etc/selinux/config文件中的SELINUX设置为disabled下载MySql的相关rpm包 打开https://dev.mysql.com/downloads/mysql/ 选择Red Hat Enterprise Linux / Oracle L…

离散数学截图

二元运算及其性质 二元运算中的特殊元 半群和独异点 代数系统的同态与同构 下确界是最大的下界&#xff0c;而在4、5、6三个下界里面&#xff0c;4和5都比6大。可4和5之间没办法分出大小&#xff0c;所以这个哈斯图没有下确界

Git、github与gitee码云

1.git核心是两个仓库&#xff1a;本地仓库和远程仓库 主要用于团队合作和代码版本控制&#xff08;个人现有版本代码出错可回溯上个提交版本的代码&#xff09; 远程仓库国际主流githut&#xff0c;但外网速度问题&#xff0c;国内可使用码云gitee github&#xff1a;https:…

腾讯云4核8G12M轻量应用服务器性能够用吗?支持多少人?

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线&#xff1f;通用型-4核8G-180G-2000G&#xff0c;2000GB月流量&#xff0c;系统盘为180GB SSD盘&#xff0c;12M公网带宽&#xff0c;下载速度峰值为1536KB/s&#xff0c;即1.5M/秒&#xff0c;假设网站内页平均大小为60KB…

备战蓝桥杯---组合数学2

本专题主要介绍容斥原理。 大家高中的时候肯定接触过韦恩图&#xff0c;容斥原理比较通俗的理解就是减去所有可能并加上重叠的部分。 我们直接看公式&#xff1a; 知道后&#xff0c;我们先看道模板题&#xff1a; 下面是AC代码&#xff1a; #include<bits/stdc.h> us…

VMware虚拟机安装openEuler系统(二)(2024)

下面我们进行openEuler系统的一些简单配置。 1. 开启openEuler系统 在VMware Workstation Pro虚拟机软件中找到安装好的openEuler操作系统虚拟机并开启。 等待开启。 2. 安装配置 进入后选择第一个“Install openEuler 20.03-LTS”。 3. 选择系统语言 为虚拟机设置系统语言…

分享94个jQuery特效,总有一款适合您

分享94个jQuery特效&#xff0c;总有一款适合您 94个jQuery特效下载链接&#xff1a;https://pan.baidu.com/s/19AsyTWJUPcCX9DN3am53Sg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理…

秋招上岸大厂,分享一下经验

文章目录 秋招过程学习过程项目经验简历经验面试经验offer选择总结 秋招过程 今天是除夕&#xff0c;秋招已经正式结束了&#xff0c;等春节过完就到了春招的时间点了。 运气比较好&#xff0c;能在秋招的末尾进入一家大厂&#xff0c;拿到20k的sp offer。 从九月份十月份就开…

大文件上传如何做断点续传?

文章目录 一、是什么分片上传断点续传 二、实现思路三、使用场景小结 参考文献 一、是什么 不管怎样简单的需求&#xff0c;在量级达到一定层次时&#xff0c;都会变得异常复杂 文件上传简单&#xff0c;文件变大就复杂 上传大文件时&#xff0c;以下几个变量会影响我们的用…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之ImageAnimator组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之ImageAnimator组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、ImageAnimator组件 提供分隔器组件&#xff0c;分隔不同内容块/内容元素…

HiveSQL——设计一张最近180天的注册、活跃留存表

0 问题描述 现有一个用户活跃表user_active(user_id,active_date)、 用户注册表user_regist(user_id,regist_date)&#xff0c;表中分区字段都为dt(yyyy-MM-dd)&#xff0c;用户字段均为user_id; 设计一张 1-180天的注册活跃留存表&#xff1b;表结构如下&#xff1a; 1 数据分…

ctfshow-php特性(web102-web115)

目录 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web114 web115 实践是检验真理的 要多多尝试 web102 <?php highlight_file(__FILE__); $v1$_POST[V1]; $v2$_GET[v2]; $v3$_GET[v3]; $v4is_numeric($v2)and is…

controller-manager学习三部曲之二:源码学习

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 作为《controller-manager学习三部曲》系列的第二篇&#xff0c;前面通过shell脚本找到了程序的入口&#xff0c;接下来咱们来学习controller-mana…