在 GUI 编程时,经常会需要一些小图标,如果直接去网上找现成的,可能有版权问题,自己做的话又麻烦,耽误时间。其实 Qt 有很多内置的图标可供我们使用,使用 QStyle::standardIcon() 即可获得这些内置图标。

先大概介绍一下 QStyle 类,它是一个抽象基类,封装了 GUI 的外观。Qt 包含一组 QStyle 子类,用于模拟 Qt 支持的不同平台的样式(QWindowsStyle、QMacStyle、QMotifStyle 等)。Qt 的内置 widget 使用 QStyle 来执行几乎所有的绘图,确保它们看起来与原生 widget 完全一样。

我们可以使用 QApplication::setStyle() 函数设置整个应用程序的样式。也可以使用QWidget::setStyle() 函数设置某个 widget 的样式。 如果没有指定样式,Qt 会为用户的平台或桌面环境选择最合适的样式。

言归正传,QStyle::standardIcon() 文档如下:

QIcon QStyle::standardIcon ( StandardPixmap standardIcon, const QStyleOption * option = 0, const QWidget * widget = 0 ) const
Returns an icon for the given standardIcon.

The standardIcon is a standard pixmap which can follow some existing GUI style or guideline. The option argument can be used to pass extra information required when defining the appropriate icon. The widget argument is optional and can also be used to aid the determination of the icon.

Warning: Because of binary compatibility constraints, this function is not virtual. If you want to provide your own icons in a QStyle subclass, reimplement the standardIconImplementation() slot in your subclass instead. The standardIcon() function will dynamically detect the slot and call it.

This function was introduced in Qt 4.1.

其中 StandardPixmap 是一个枚举,描述了可用的 pixmap,范围是 [0, 69],具体见:enum QStyle::StandardPixmap。

我们来写个测试程序,看下这些内置图标在不同的样式下是什么样子。

代码下载链接:Qt_build_in_icons,关键代码为:

void Widget::on_cbStyle_activated(const QString &style)
{QApplication::setStyle(style);ui->tableWidget->clear();ui->tableWidget->setRowCount(7);ui->tableWidget->setColumnCount(10);int IconIndex = 0;for (int row = 0; row < ui->tableWidget->rowCount(); row++){for (int col = 0; col < ui->tableWidget->columnCount(); col++){QIcon icon = QApplication::style()->standardIcon((QStyle::StandardPixmap)IconIndex);QTableWidgetItem *item = new QTableWidgetItem(icon, QString::number(IconIndex));ui->tableWidget->setItem(row, col, item);IconIndex++;}}
}

结果如下:

我用的是 window 10 系统,默认是 windowsvista 样式,内置图标:

其他样式的 Qt 内置图标为:

Windows:

WindowsXP:

Motif:

CDE:

Plastique:

Cleanlooks:

Qt 内置图标一览表相关推荐

  1. Qt学习笔记之--Qt内置图标一览表

    Qt内置了一批图标,一共有70个(Qt 5.9.5),不同的平台图标有差异.由于官方文档中只有描述没有图示,所以写个Demo把这些图标全部显示出来.下面展示了windows.Linux.android ...

  2. Qt内置图标演示Demo

    文章目录 1.说明

  3. layui内置图标不满足需求,自定义添加阿里矢量图标

    layui添加阿里矢量图标 适用于layui内置图标不够用的情况 1.第一步 进入阿里矢量图标官网,选择自己的图标,加入购物车,点击下载代码 2.第二部,解压下载的文件,复制所有内容,到项目中 这里再 ...

  4. MATLAB 求函数极值的内置函数一览表(实则优化算法函数汇总)

    MATLAB 求函数极值的内置函数一览表 收集了几乎所有的 MATLAB 内置的优化函数,可收藏,需要时查阅. 文章目录 MATLAB 求函数极值的内置函数一览表 简介 概览 求函数极值(或最大值最小 ...

  5. java fx 内置图标_DOC-05-01 使用内置的布局面板

    DOC-05-01 使用内置的布局面板 本系列教程主要介绍JavaFX SDK中布局容器相关类,我们称之为面板(Pane).使用布局面板来简化JavaFX应用程序中的用户界面的管理. 我们可以通过为每 ...

  6. mac 菜单栏图标删除_您可以在Mac菜单栏上显示的所有内置图标(可能)

    mac 菜单栏图标删除 Apple's operating system's menu bar is truly old school; it's been around for as long as ...

  7. java fx 内置图标_图标 – 如何在Windows上为javafx本机程序包图标设置自定义图标...

    我正在尝试创建exe文件的图标,同时创建javafx包装的本机捆绑. 我尝试将图标添加到pom.xml中,但直到它不会为我工作,因为它提供了默认图标 使用包含Pom.xml的Intellij IDEA ...

  8. python22个字符串长度_python字符串处理内置方法一览表

    序号 方法及描述 1 capitalize() 将字符串的第一个字符转换为大写 2 center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填 ...

  9. Flutter Icons内置图标库MaterialIcons大全

    Flutter 中的图标组件 Icon , 专门用于显示图标 ,如: Icon(Icons.check_rounded,color: Colors.white,size: 18, ) 图集预览:

最新文章

  1. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...
  2. 为什么要 conda 作用_烤箱预热有什么作用?为什么烘焙一定要预热烤箱?怎么正确预热?...
  3. Linux学习课程笔记(1)
  4. 全参考客观视频质量评价方法 (MSE, PSNR,SSIM)原理
  5. Delphi通过MSHTML实现一个HTML解析类
  6. Splash 简介与安装
  7. SQL Server 2008 Mirror
  8. CISSP-安全与风险管理
  9. c语言全局变量6,C语言全局变量定义方法
  10. vba,选中带有图片连接的单元格时,自动下载图片
  11. 深度学习李宏毅21春_16_GAN_P3
  12. 个人网站性能优化经历(6)网站安全方面优化
  13. matlab 颜色半透明,使用matlab画半透明椭圆
  14. 《Hadoop系列》脚本开发自动化配置伪分布式Hadoop
  15. python 对比 字典 dict 不同之处
  16. 制作一款STC32G封装为TSSOP20的测试电路板
  17. 【论文译文】GauGAN
  18. pandas 数据透视表
  19. 如何用BI数据管理的思维,优化我们的人生
  20. 给老公做的爱心便当,持续更新!-西餐-19楼私房菜-杭州19楼

热门文章

  1. 手绘和次世代的建模流程
  2. 兰手指模拟器( BlueStacks)又不听话了,不能运行的解决办法:
  3. pytest-fixture应用
  4. php eol 没有换行,php_eol没有换行怎么办
  5. html设置按钮样式表,如何使用样式表设置QToolButton的图标?
  6. 那些程序员必看的诗歌美句(持续更新...)
  7. “菩提本无树,明镜亦非台,本来无一物,何处惹尘埃?”谁知此禅诗为何意?...
  8. B/S服装连锁销售系统
  9. 全球首款 RISC-V 笔记本 ROMA 正式发布!
  10. 华硕官方发布超薄上网本, 价格不高于200 美元