首页 > 其他分享 >qt标题,解决title的png图片scaled后显示有明显锯齿

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

时间:2024-10-28 22:57:53浏览次数:4  
标签:Qt title QToolButton height scaled radioButton toolButton qt

一、通用方法(使用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; 调整位置

效果对比

标签:Qt,title,QToolButton,height,scaled,radioButton,toolButton,qt
From: https://www.cnblogs.com/Yzi321/p/18511869

相关文章

  • Qt 实现启动动画
    受bilibili客户端启发,同款效果动画初始化voidMainWindow::initOverlayLabelAnimation(){//在centralwidget上创建一个覆盖的labeloverlayLabel=newQLabel(this);//加载logo图片QPixmappix=QPixmap(PNG_LINEX);floatscaled=0.3;ov......
  • Qt电子相册
    目录项目要求项目实现 ui设计代码dialog.hdialog.cpp源码项目要求基于作业3.0,增添以下功能:1.优化图片和代码逻辑2.增加自动翻页功能3.增加试试手气功能项目实现 ui设计 代码dialog.h#ifndefDIALOG_H#defineDIALOG_H#include<QDialog>#incl......
  • Qt作业3.0
    目录题目:ui界面设计:​编辑代码:dialog.hdialog.cppmain.cpp源码:题目:设计一个电子相册,点击上一张,切换到上一张图片,点击下一张,切换到下一张图片。要求:图片的展示可以循环,使用QList<QString>存储图片路径ui界面设计:代码:dialog.h//头文件dialog.h#ifn......
  • day10(Qt)OpenCV
    目录OpenCV1.OpenCV简介2.环境搭建3.人脸检测OpenCV1.OpenCV简介OpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能。该库由英特尔公司发起,并在BSD许可证下发布,因此它是免费的,且开放源代码。OpenCV......
  • 基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码
    背景及意义吸烟行为检测对于维护公共场所的健康环境、防止火灾事故的发生以及促进健康生活方式都具有重要作用。使用基于YOLOv8的吸烟行为检测系统能够有效识别视频中的吸烟行为,从而及时采取适当措施。本文基于YOLOv8深度学习框架,通过2357张图片,训练了一个进行吸烟行为的......
  • 基于YOLOv10/YOLOv9/YOLOv8深度学习的工业螺栓螺母检测系统【python源码+Pyqt5界面+数
    背景及意义工业螺栓螺母检测系统的实施显著提高了制造行业的产品质量和工作效率。该系统的应用涵盖了从生产、检查到包装等各个环节,为精密设备的维护和安全运行提供了强大的技术支持。本文基于YOLOv10/YOLOv9/YOLOv8深度学习框架,通过2548张工业螺栓螺母的相关图片,训练了可......
  • 基于YOLOv10/v9/v8深度学习的金属焊缝缺陷检测系统【python源码+Pyqt5界面+数据集+训
    背景及意义金属焊缝缺陷检测系统的实现显著提高了众多工业领域产品的安全性和可靠性。自动化的检测过程不仅增加了工作效率,还降低了人力成本和事故风险。本文基于YOLOv10/v9/v8深度学习框架,通过3170张金属焊缝缺陷的相关图片,训练了可进行焊缝缺陷目标检测的模型,可以分别......
  • 基于YOLOv8深度学习的人脸面部口罩检测系统【python源码+Pyqt5界面+数据集+训练代码】
    背景及意义人脸口罩面部检测能够准确地检测人脸是否佩戴口罩,对于控制疫情传播、保障公共卫生安全起到关键作用。本文基于YOLOv8深度学习框架,通过853张图片,训练了一个进行人脸面部口罩的目标检测模型,能够准确的检测人脸“戴口罩”、“未戴口罩”及“未正确佩戴口罩”。并基......
  • Qt gridLayout布局占两格或两列在ui文件中实现
         在Qt  gridLayou布局里添加一个控件如何设置其占两格或多格   如下图:             一、如果是纯代码编写的界面 (大多是这个方式)     在纯代码编写的界面应用中,可以使用函数QGridLayout::addWidget(QWidget*w,intr......
  • PyQt开发-mkvirtualenv虚拟环境
    一、mkvirtualenv简介 1.虚拟环境简介 考虑以下场景:当我们需要同时维护一个由 Django1.0 版本驱动的老项目和开发一个使用 Django2.0 版本的新项目时,如何顺滑的在两种开发环境中切换成了一个难题。为了解决这个问题,虚拟环境应运而生。什么是虚拟环境:第一次安......