QT软件开发中的图标设置与好用的图标网站

控件支持的图片类型:

需要设置图标的控件一般有:

  • 按钮
  • action
  • list item
  • 软件本身
  • ……

就拿按钮来说,用代码设置图标,有而且只有xx.setIcon(QIcon icon)函数,其它action啥的的也是这个函数。说明在代码中,我们只能是提供 xx.ico 文件给程序使用。

但是,如果我们是在设计师界面进行设计,就可以为控件选择任意格式的图片文件都是支持的,这是因为设计师界面工具为我们的图片做了转换,最后还是生成了 ico 图片给代码中使用的。

所以ico图片是最终的目标格式图片,而一般的图片编辑器是不支持保存为这个图片的。

图片格式选择:

一般图片格式:jpg,png,svg等

  • 首选svg,因为是矢量图,可以任意放大缩小的。我们可以在代码中通过qt的函数转为ico图片的。visio就可以保存为这个格式。
  • 其次选png,这个因为带有透明度信息的。这个用Windows自带的3D画图软件,还挺方便得到的,主要是背景透明很方便。
  • 而jpg属于压缩格式,而且不透明,不好用。

为了简单,我们直接在设计师界面指定各控件的图标了,这样直观。我们就直接用png图片即可。

否则,在代码中设置图片的话,我们还是用svg吧,因为能用函数动态生成各种尺寸的icon,且不会模糊。

这些图片,我们放在源码目录的一个文件夹里,然后添加到资源文件里,这样就是程序的一部分了,程序中就可以任意读取了,不依赖于软件存放的路径了。在Qt中设置程序图标的方法介绍_liitdar的博客-CSDN博客_qt设置程序图标

在Qt中设置程序图标的方法介绍_liitdar的博客-CSDN博客_qt设置程序图标

图片或者说图标来源:

我们可以直接画,也可以去网站上找,这些网站能找到大量好看的。测试了大量网站,主要觉得不错的网站如下:(最起码支持png,svg格式的免费下载,而且搜索关键字会很友好,很全)

  1. Iconfont 中国最大的(国内还有各字节跳动的IconPark,但是好像有些搜不到),很全,搜索也挺友好的。iconfont-阿里巴巴矢量图标库
  2. iconfinder 国外的,非常非常全,搜索非常友好,还能提示一个图标的相关图标,这样方便了我们找同类图标了,非常推荐这个网站。https://www.iconfinder.com/
  3. flaticon,国外的,这个搜索也很全的。https://www.flaticon.com/
  4. iconsDB,也不错,支持用户自定义颜色 https://www.iconsdb.com/
  5. https://thenounproject.com/ 也不错,就是网速慢
  6. icons8,也很全,也是网速慢,免费的图标、剪贴画插图、照片和音乐
  7. Openmoji,关于人物表情的,挺有意思,https://openmoji.dashgame.com/#/library?id=1F627

### 如何在Qt开发中设置软件项目的图标 #### 设置窗口图标 为了使应用程序具有专业的外观,可以为其主窗口指定一个自定义图标。这可以通过两种方式完成:一种是在Qt Designer中图形化配置,另一种则是在代码中编程设定。 当使用Qt Designer来设计界面时,在属性编辑器里找到`windowIcon`字段,并点击右侧的小按钮选择要使用的图标文件[^1]。对于编码实现而言,可以在创建主窗口对象之后立即调用其成员函数`setWindowIcon()`传入所需的`QIcon`对象作为参数: ```cpp #include <QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.setWindowIcon(QIcon(":/icons/appicon.png")); // 加载并设置窗口图标 w.show(); return a.exec(); } ``` 上述例子展示了如何利用资源系统中的图像路径来初始化`QIcon`对象,并将其应用于整个应用的主要视窗上。 #### 应用程序级别的图标设置 除了单独为各个顶级部件分配不同的图标外,还可以在整个应用程序范围内统一管理这些视觉元素。通过继承`QGuiApplication`类并向其中加入静态变量`applicationDisplayName`以及相应的图标资源链接即可达成此目的: ```cpp // 在main.cpp之前声明全局样式表和图标 static const QString kAppStyle = R"( QToolTip { color: white; background-color: black; border: none; } )"; static QIcon app_icon; int main(int argc, char* argv[]) { QGuiApplication app(argc, argv); // 设置应用程序名称用于显示 qputenv("QT_QPA_PLATFORMTHEME", "qt5ct"); app.setAttribute(Qt::AA_EnableHighDpiScaling); app.setApplicationName(QStringLiteral("My Application")); app.setOrganizationDomain(QStringLiteral("example.com")); // 初始化图标 app_icon.addFile(u":/images/logo_16x16.ico"_qs); app_icon.addFile(u":/images/logo_32x32.ico"_qs); app_icon.addFile(u":/images/logo_48x48.ico"_qs); app_icon.addFile(u":/images/logo_256x256.ico"_qs); app.setWindowIcon(app_icon); ... } ``` 这段代码片段不仅设置了不同尺寸的应用图标以便适应各种场景需求,还包含了其他一些提升用户体验的功能改进措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值