Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小) 您所在的位置:网站首页 水泥预制件模具 Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)

Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)

2022-12-08 15:55| 来源: 网络整理| 查看: 265

各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:实用技巧(点击传送门)

 

需求

        需要2个按钮,一个是音乐的开关,一个是关闭窗口,此文章主要关注图标缩放的问题

 

相关

        《Qt实用技巧:Qt设计器中QIcon的缩放(qss的放大和QIcon自动缩小(无法自动放大))》:

         javascript:void(0)

 

原理

        QPushButton可以设置无内容,其本身带有QIcon,那么使用QIcon缩放即可

 

入坑

        代码如下:

ui->pushButton_music->setIcon(QIcon(QPixmap("./按钮/sound.png").scaled(ui->pushButton_music->rect().size())));

结果:不生效,添加参数也无效

        原因:QIcon会自动放大缩小QPixmap,所以我们只要设置要QPixMap,然后重新设置QIcon大小即可。

 

代码

初始化代码:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 加载声音图标和退出图标,注意:图标的缩放依赖于控件设置QIcon的大小,与QPixmap无直接关系 _playingMusic = true; ui->pushButton_music->setIconSize(ui->pushButton_music->rect().size()); ui->pushButton_close->setIconSize(ui->pushButton_close->rect().size()); // 原本是想QPixmap缩放,然后设置QIcon,QIcon会以QPixmap的size为大小 // 经过测试QPixmap缩放后,还是以QIcon的size为结果,故此处多余,替换此处代码 // 方式一: 如果 icon 小于 QIcon 尺寸,此方法将图片放大 ui->pushButton_music->setIcon(QIcon(QPixmap("./按钮/sound.png").scaled(ui->pushButton_music->rect().size()))); ui->pushButton_close->setIcon(QIcon(QPixmap("./按钮/close.png").scaled(ui->pushButton_close->rect().size()))); // 方式二: 如果 icon 大于或等于 QIcon 尺寸, 直接使用QIcon(QStirng str)可自动缩放到QIcon的尺寸,但无法放大 // ui->pushButton_music->setIcon(QIcon("./按钮/sound.png")); // ui->pushButton_close->setIcon(QIcon("./按钮/close.png")); }

声音切换代码

void MainWindow::on_pushButton_music_clicked() { if(_playingMusic) { ui->pushButton_music->setIcon(QIcon(QPixmap("./按钮/no_sound.png").scaled(ui->pushButton_music->rect().size()))); } else { ui->pushButton_music->setIcon(QIcon(QPixmap("./按钮/sound.png").scaled(ui->pushButton_music->rect().size()))); } _playingMusic = !_playingMusic; } 效果

               缩放前                                      缩放后

Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)_ico        Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)_QIcon_02

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有