iconset.png_png图片怎么转换成ico

iconset.png_png图片怎么转换成ico【Qt】Qt 实现图像格式转图标 ico 格式的程序【Qt】Qt 实现图像格式转图标 ico 格式的程序 文章目录 【Qt】Qt 实现图像格式转图标 ico 格式的程序核心代码编写应用程序1. 设计界面2. 头文件3. 源文件

【Qt】Qt 实现图像格式转图标 ico 格式的程序

【Qt】Qt 实现图像格式转图标 ico 格式的程序

文章目录

  • 【Qt】Qt 实现图像格式转图标 ico 格式的程序
    • 核心代码
    • 编写应用程序
      • 1. 设计界面
      • 2. 头文件
      • 3. 源文件

核心代码

此程序得核心代码既是,使用 QImage 打开图片文件,并保存为 ICO 格式。


将上述代码中的 sourcePath 和 destinationPath 分别替换为原图片的路径和生成位置的路径。
如果仅仅是为了完成图片格式转换,到这里就可以止步了。

以下内容是为了编写一个应用程序,方便多次使用。

编写应用程序

1. 设计界面

在这里插入图片描述
这里主界面继承自 QDialog,有三部分组成,最上方,两个 QLineEdit 用于放置原图片路径,和生成路径,以及用于浏览选择位置的两个按钮,这里将他们命名为 srcPath, destPath, btnSrcBrowe, btnDestBrowse。

第二部分,一个 Horizontal SpacerQPushButton,按钮用于触发转换,命名为 btnConvert

第三部分,一个 QTextEdit ,用于显示是否转换成功,命名为 console

2. 头文件

这里使用的是 Visual Studio + Qt plugin 的方式,在 Visual Studio 上的开发,个别头文件与原生 Qt 可能不太相同。

头文件中可以看到 ImageConverter 类继承自 QDialog,这里除了 Ui 没有存储任何的私有变量,为了简洁,省去了非必要的多个成员变量的维护和与界面同步的问题。


这里仅需要声明三个槽函数,用于响应三个按钮的点击事件。

3. 源文件

首先,包含头文件


  • 本类的头文件自然不必赘述
  • 包含 用于绑定按钮信号 clicked ,到槽函数中
  • 包含 用于浏览图片位置和保存图标位置
  • 包含 为了使用 QImage 自带的转换

构造函数,setWindowTitle 用于设置标题栏名称,然后使用 Qt5 的 connect ,绑定函数指针,来连接信号槽。



浏览原图片按钮槽函数,这里用到了 QFileDialog 的静态函数 getOpenFileName , 给了两个实参,第一个 用于设置父窗口,第二个 用于设置文件对话框的标题栏。


文件对话框,选择完毕点击确定,会将文件路径返回到 中,若对话框关闭未选择,则会返回一个空字符串,if 判断检测为空的情况下,不向下继续进行。

若到文件路径,则在显示源路径在界面上,同时显示目标路径到界面上,使用 QFileInfo 为了原图片的绝对路径 () 和文件名 (),将后缀名改为 ,拼接上去


响应浏览目标路径按钮的槽函数,首先检测源路径是否已经设置,若未设置则将目标文件名命名为 , 若已设置,则如之前函数一样,文件名添加后缀名


这里使用了 QFileDialog::getSaveFileName 设置默认的保存名称为 ,
第一个参数:父对象,
第二个参数:窗口名称,
第三个参数:文件名,也可以是保存路径,也可以是保存路径+文件名(例如:QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)+“shotnum”)

第四个参数:过滤器


响应转换按钮的槽函数, 这里两个路径,然后使用核心代码,如果保存成功则在 QTextEdit 上显示 success, 否则显示 conversion failure


完整源文件代码


运行界面如图所示

在这里插入图片描述

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/12526.html

(0)
上一篇 2024年 5月 14日 下午8:06
下一篇 2024年 5月 14日 下午8:16

相关推荐

关注微信