QT上位机开发(QSS美化)

news2025/2/25 7:39:56

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        我们早期学习过web开发的同学都知道,web开发有三个部分,分别是html、css和java script。其中html负责控件生成和布局,css负责美化,java script负责和web后端的数据交互。今天我们说的这个qss美化,完全可以类比成web的css来看。整体上,designer处理的ui文件就类似于html,qss类似于css,c++编程则类似于javascript脚本开发,这样一来,所有的概念就能都对上了。

        为了说明qss美化怎么使用,我们用上一期文章的进度条来举例说明。

1、准备style.qss

        style.qss文件,本身和css的语法也非常像。如果我们对qt默认的控件外观不是很满意,那就可以通过自己编写style.qss文件的方式,来进行调整和补充。当然,过程中大家也可以换成其他的文件名字,不一定非要是style.qss。这种qss的修改完全是通过脚本来完成的,哪怕qt的程序已经生成好了,我们还是可以通过修改style.qss来继续美化和升级,根本不需要重新编译、链接,这对我们程序员来说还是很方便的。

QPushButton:enabled{
	font-family: "Microsoft YaHei";
    font-size: 15px;
	background-color:#172349;
	border-radius:5px;
	color:white;
}

QPushButton:disabled{
	font-family: "Microsoft YaHei";
    font-size: 15px;
    background-color:#D3D3D3;
	border-radius:5px;
	color:white;
}

QProgressBar {
    border: 1px solid #ccc; 
    border-radius: 5px; 
    background-color: #f0f0f0; 
	text-align: center;
}

QProgressBar::chunk {
   background-color: #83E800;
}

        修改的内容就有两部分。一个是按钮的美化,一个是进度条的美化。按钮的美化这块,又分成了按钮enable和disable两种状态。而进度条的美化,则主要集中在进度条更新时,颜色的显示发生了变化。

2、style.qss文件的加载

        style.qss的加载,主要是和对应的窗口绑定在一起的。因为这种操作,本质上相当于就是对MainWindow进行美化,所以相关的加载和设置动作是放在main.cpp来进行的。大家可以看一下对应的代码,就知道个大概了,

#include "QtWidgetsApplication.h"
#include <QtWidgets/QApplication>
#include <QFile>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QtWidgetsApplication w;

	QFile styleFile("style.qss");  
	if (styleFile.open(QIODevice::ReadOnly | QIODevice::Text)) 
	{
		QString styleSheet = styleFile.readAll();
		styleFile.close();
		w.setStyleSheet(styleSheet);
	}

    w.show();
    return a.exec();
}

        首先,我们加载了style.qss文件。紧接着,读取文件里面的内容。等所有内容都读到styleSheet之后,把它绑定到窗口w上面即可。注意,style.qss文件放到和cpp文件同一个目录下面。

3、编译和测试

        相对而言,qss编写调整和代码的添加,这两部分是稍微麻烦一点的。而测试则没有那么难。主要验证的标准,就是去观察,即相关的按钮、进度条有没有和我们预期的美化效果是否一致。如果有效果,那么优化结束;反之,继续调整qss文件,继续查看效果,直到满意为止。

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

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

相关文章

基于Matlab/Simulink的MIL仿真验证解决方案

文章目录 需求追溯 虚拟环境 模型检查 仿真验证 测试报告 参考文献 针对模型开发阶段的ECU算法&#xff0c;可以很直接地将其与虚拟车辆模型连接起来&#xff0c;通过MIL对其进行验证和确认。可以在开发过程的早期检测到设计错误和不正确的需求&#xff0c;也有助于安全地…

DSL查询文档--各种查询

DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1查询所有 结果&#xff1a; 2全文检索&#xff08;full text&#xff09;查询 常见的全文检索查询包括&#xff1a; match查询&#xff1a;单字段查询 multi_match查询&#xff1a;多字段查询&#xff…

阿里云ingress配置时间超时的参数

一、背景 在使用阿里云k8s集群的时候&#xff0c;内网API网关&#xff0c;刚开始是用的是Nginx&#xff0c;后面又搭建了ingress。 区别于nginx配置&#xff0c;ingress又该怎么设置参数呢&#xff1f;比如http超时时间等等。 本文会先梳理nginx是如何配置&#xff0c;再对比…

AC修炼计划(AtCoder Beginner Contest 334)A~G

传送门&#xff1a;UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334) - AtCoder A题是最最基础的语法题就不再讲解。 B - Christmas Trees 该题虽然分低&#xff0c;但我觉得还是很不错的。 给你 l 和 r &#xff0c;设满足题意的数字是x则…

TIFF转JPG助手:轻松批量转换,优化图片管理

在数字时代&#xff0c;图片已成为我们生活和工作中不可或缺的一部分。为了更好地管理和使用这些图片&#xff0c;我们需要一个强大的工具来帮助我们转换和优化图片格式。TIFF转JPG助手正是这样一款理想的解决方案 首先&#xff0c;我们进入首助编辑高手主页面&#xff0c;会看…

qayrup-switch开发文档

因为只是一个小组件,所以直接拿csdn当开发文档了 书接上文uniapp怎么开发插件并发布 : https://blog.csdn.net/weixin_44368963/article/details/135576511 因为我业没有开发过uniapp的组件,所以我看到下面这个文件还是有点懵的 也不清楚怎么引入, 然后去翻了翻官方文档,官方…

基于时域有限差分法的FDTD的计算电磁学算法-YEE网格下的更新公式推导

基于时域有限差分法的FDTD的计算电磁学算法&#xff08;含Matlab代码&#xff09;-YEE网格下的更新公式推导 参考书籍&#xff1a;The finite-difference time-domain method for electromagnetics with MATLAB simulations&#xff08;国内翻译版本&#xff1a;MATLAB模拟的电…

面试官问,如何在十亿级别用户中检查用户名是否存在?

面试官问&#xff0c;如何在十亿级别用户中检查用户名是否存在&#xff1f; 前言 不知道大家有没有留意过&#xff0c;在使用一些app注册的时候&#xff0c;提示你用户名已经被占用了&#xff0c;需要更换一个&#xff0c;这是如何实现的呢&#xff1f;你可能想这不是很简单吗…

StarRocks中有趣的点

最近在工作中&#xff0c;遇到有小伙伴使用StarRocks&#xff0c;所以看了下文档&#xff0c;感觉以下几点比较有趣。 支持MySQL协议 想必是为了通用性&#xff0c;StarRocks 提供MySQL协议接口&#xff0c;支持标准SQL语法。即可通过MySQL客户端连接StarRocks&#xff0c;并…

Linux系统SSH远程管理服务概述

目录 一.SSH协议 1.定义 2.优点 &#xff08;1&#xff09;加密 &#xff08;2&#xff09;压缩 3.SSH的客户端与服务端 &#xff08;1&#xff09;客户端 &#xff08;2&#xff09;服务端 4.原理 5.实验&#xff1a;使用ssh远程登录 二.OpenSSH服务器 1.概念 2.…

Wargames与bash知识17

Wargames与bash知识17 Bandit25&#xff08;Bandit26&#xff09; 关卡提示 从bandit25登录到bandit26应该相当容易…用户bandit26的shell不是/bin/bash&#xff0c;而是其他东西。找出它是什么&#xff0c;它是如何工作的&#xff0c;以及如何摆脱它。 推荐命令 ssh, cat, …

ssm基于vue的儿童教育网站的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;视频信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

Java锁的分类

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

关于Web Tours

Web Tours 文章目录 简介下载解压安装并启动地址注册登录特殊情况 简介 Web Tours是惠普loadrunner自带的一个飞机订票系统网站&#xff0c;默认支持SQL Server数据库、Access、Mysql等多种数据库&#xff0c;基于ie、Chrome、Firefox等浏览器&#xff0c;Web Tours网站主要提…

Jenkins-执行脚本案例-初步认识JenKins的使用

环境搭建 docker pull jenkins/jenkins:2.440 docker run -d -p 10240:8080 -p 10241:50000 -v /env/liyong/data/docker/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:2.440 #在挂载的目录下去修改仓库地址 vim hudson…

mysql复制表的几种常用方法

遇到需要拷贝一个表及其数据的情况,总结了一下几种方法 1.使用 show create table 旧表 将结果拷贝出来,将旧表名换成新表名即可. 注意:该方法仅适用于拷贝表结构,不需要同步数据的情况 show create table 旧表名2.create table 新表 like 旧表 该语句将完全拷贝旧表结构, …

15个为你的品牌增加曝光的维基百科推广方法-华媒舍

维基百科是全球最大的免费在线百科全书&#xff0c;拥有庞大的用户群体和高质量的内容。在如今竞争激烈的市场中&#xff0c;利用维基百科推广品牌和增加曝光度已成为许多企业的重要策略。本文将介绍15种方法&#xff0c;帮助你有效地利用维基百科推广品牌&#xff0c;提升曝光…

代码随想录算法训练营第四天|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II,总结

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

【IDEA】瑞_IDEA模版注释设置_IDEA自动生成注释模版(详细图文步骤)

文章目录 1 概要2 类的自定义模版注释3 自定义模版注释3.1 方法的自定义模版注释3.2 属性的自定义模版注释 &#x1f64a; 前言&#xff1a;在Java开发中&#xff0c;注释具有不可或缺的重要性&#xff0c;注释负责解释代码&#xff0c;能帮助开发人员深入理解代码的逻辑和功能…