qt标题,解决title的png图片scaled后显示有明显锯齿

news/2025/1/23 0:56:50/文章来源:https://www.cnblogs.com/Yzi321/p/18511869

一、通用方法(使用Qlabel)

// 添加窗口图标
iconLabel = new QLabel(this);
QPixmap iconPixmap(":/ico.png"); // 替换成你的图标文件路径
iconLabel->setPixmap(iconPixmap.scaled(125, 35, Qt::KeepAspectRatio, Qt::SmoothTransformation));
iconLayout->addWidget(iconLabel);

此时图片会有锯齿感

原因:
iconPixmap.scaled(125, 35, Qt::KeepAspectRatio, Qt::SmoothTransformation)

此代码的图片是正常的,但是

iconLabel->setPixmap();

调用此函数后,显示在QLabel中的实际大小会大于原来125*35的大小,所以会有锯齿感

二、解决办法

1、使用QToolButton

QImage iconImage(PNG_PATH); // 替换成你的图标文件路径// 缩放
float radio = 0.3;
float radioButton = 0.6;
int width = iconImage.width() * radio;
int height = iconImage.height() * radio;toolButton = new QToolButton(this);
toolButton->setMinimumSize(width * radioButton, height * radioButton);
toolButton->setStyleSheet(".QToolButton{padding-left: -20px;padding-top: 7px;background: transparent;border: 0px;}.QToolButton:hover{background-color: transparent;}.QToolButton:pressed{background-color: transparent;}");QIcon icon(std::move(QImage2QPixmap(iconImage.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation))));
toolButton->setIcon(icon);
toolButton->setIconSize(QSize(width * radioButton, height * radioButton));// 设置按钮的其他属性(可选)
toolButton->setText("");// 设置按钮自动提升,使其在不可点击时呈现为灰显
toolButton->setAutoRaise(true);iconLayout->insertWidget(0, toolButton);

1、通过调整 radio 的调整本地png的缩放大小

2、通过调整 radioButton 的值来调整toolButton的大小

3、通过调整setStyleSheet中的 padding-left: -20px;padding-top: 7px; 调整位置

效果对比

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

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

相关文章

周蕊-第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 设计一个命令行文本计数统计程序姓名-学号 周蕊-2022329301039我的码云地址: https://gitee.com/little-bear-huilai/the-second-homework.git 1. 项目简介及函数介绍 1.1. 项目简介本项目旨在…

Angular 19 要 来了⚡

前言 Angular 19 预计会在 11 月中旬发布,目前 (2024-10-27) 最新版本是 v19.0.0-next.11。 这次 v19 的改动可不小哦,新增了很多功能,甚至连 effect 都 breaking changes 了呢🙄 估计这回 Angular 团队又会一如既往的大吹特吹了...好期待哦🙄 虽说有新功能,但大家也不…

C语言和其他高级语言的最大区别是什么

C语言和其他高级语言的最大区别是:一、编程范式不同;二、语言复杂度不同;三、内存管理和指针操作不同;四、性能和可移植性不同。编程范式不同在于,C语言是一种过程式编程语言,侧重于问题解决的步骤和顺序,而其他高级语言则采用更高层次的编程范式。一、编程范式不同 C语…

Mybatis01

Mybatis01 简介 Mybatis实现了对jdbc的封装使得对于数据库的连接变得利于维护,需要在xml文件中进行资源配置开发,然后再mapper文件中进行代理开发,最后实现接口可以通过对Maaper 的函数调用实现对于数据库的增删改查. 环境配置 搭建web骨架在maven,的pom.xml中导入坐标,同时导入…

AvaloniaUI项目离线开发全攻略:IDE安装、模板应用与NuGet私有化部署一站式解决

1. 引言 在网络受限或完全离线的环境中开发.NET项目(本文示例为Avalonia UI项目),可能会遇到一些挑战。本文将为您提供一套完整的离线开发解决方案,包括IDE的安装、Avalonia UI模板的配置、私有化NuGet服务的部署以及NuGet包的制作和上传等。 2. IDE安装指南 Visual Studio…

.NET云原生应用实践(四):基于Keycloak的认证与授权

本章目标完成Keycloak的本地部署与配置 在Stickers RESTful API层面完成与Keycloak的集成 在Stickers RESTful API上实现认证与授权Keycloak的本地部署 Keycloak的本地部署最简单的方式就是使用Docker。可以根据官方文档构建Dockerfile,然后使用Docker Compose直接运行。由于K…

温习 SPI 机制 (Java SPI 、Spring SPI、Dubbo SPI)

SPI 全称为 Service Provider Interface,是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。1…

.NET周刊【10月第3期 2024-10-20】

国内文章 我被 .NET8 JIT 的一个BUG反复折磨了半年之久(JIT tier1 finally optimizations) https://www.cnblogs.com/calvinK/p/18469889 作者分享了一次在公司中API服务器从.NET 6升级到.NET 8后遇到的JIT BUG经历。升级后一个实例在某些部署中出现AES解密明文字符丢失的问题,…

mysql弱密码爆破

mySQL弱密码靶场:/vulhub/mysql/CVE-2012-2122启动: docker-compose up -d扫描端口 nmap -Sv -Pn -T4 靶机ip看到在3306端口开启了mysql服务爆破账号密码1.使用超级弱口令检测工具(github下载)爆破出root/1234562.使用Hydra爆破 hydra -L 用户名字典 —P 密码字典 靶机IP m…

本人高分硕士论文项目:工业异常检测基准引擎

1. 架构 如图所示,IADBE(Industrial Anomaly Detection Benchmark Engine)系统由三个主要部分组成: IADBE、IADBE 服务器和 IADBE 后台。IADBE 是系统的核心,API 和 CLI 是网关。数据集、模型和指标是系统最重要的部分。模型基于开源的 Anomalib 和 YOLOv8。系统有三个主要…

CSP-S 2024 复赛游记

CSP-S 2024 游记Day -2 空白的一天。huge 不想太多天连着打模拟赛,并且想在明天安排一场,所以安排了专题。 今天是 dp 专题。 听了丁真的去做 AT 的 dp 专题 了,很晚才看 Vjudge。 效率有点低啊,这状态怎么打复赛(。 Day -1 全真模拟,换了座位。模拟赛有关。 挂了 40pts,…

现在才投简历还来得及吗?

某客热帖“现在才投互联网还有没有 HC?”,一时间引发了广泛的讨论。事情是这样的:有个小哥,其自身条件也不错,本硕 985 院校,求职意向是 Java 后端研发工程师,拿过国奖、有实习经历,各方面条件都不错。 但就是比较刚,秋招开始后只投了央国企、银行、运营商之类的工作,…