QIcon Class
QIcon 类提供了可在不同模式和状态下缩放的图标。更多内容...
| 头文件: | #include <QIcon> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- 所有成员的列表,包括继承的成员
- 已弃用的成员
- QIcon 属于“绘图类”和“隐式共享类”。
公共类型
| enum | Mode { Normal, Disabled, Active, Selected } |
| enum | State { On, Off } |
(since 6.7) enum class | ThemeIcon { AddressBookNew, ApplicationExit, AppointmentNew, CallStart, CallStop, …, WeatherStorm } |
公共函数
| QIcon() | |
| QIcon(QIconEngine *engine) | |
| QIcon(const QPixmap &pixmap) | |
| QIcon(const QString &fileName) | |
| QIcon(const QIcon &other) | |
| QIcon(QIcon &&other) | |
| ~QIcon() | |
| QSize | actualSize(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| void | addFile(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = Normal, QIcon::State state = Off) |
| void | addPixmap(const QPixmap &pixmap, QIcon::Mode mode = Normal, QIcon::State state = Off) |
| QList<QSize> | availableSizes(QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| qint64 | cacheKey() const |
| bool | isMask() const |
| bool | isNull() const |
| QString | name() const |
| void | paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| void | paint(QPainter *painter, int x, int y, int w, int h, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| QPixmap | pixmap(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| QPixmap | pixmap(int extent, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
(since 6.0) QPixmap | pixmap(const QSize &size, qreal devicePixelRatio, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| QPixmap | pixmap(int w, int h, QIcon::Mode mode = Normal, QIcon::State state = Off) const |
| void | setIsMask(bool isMask) |
| void | swap(QIcon &other) |
| operator QVariant() const | |
| QIcon & | operator=(QIcon &&other) |
| QIcon & | operator=(const QIcon &other) |
静态公共成员
| QStringList | fallbackSearchPaths() |
| QString | fallbackThemeName() |
| QIcon | fromTheme(const QString &name) |
(since 6.7) QIcon | fromTheme(QIcon::ThemeIcon icon) |
(since 6.7) QIcon | fromTheme(QIcon::ThemeIcon icon, const QIcon &fallback) |
| QIcon | fromTheme(const QString &name, const QIcon &fallback) |
| bool | hasThemeIcon(const QString &name) |
(since 6.7) bool | hasThemeIcon(QIcon::ThemeIcon icon) |
| void | setFallbackSearchPaths(const QStringList &paths) |
| void | setFallbackThemeName(const QString &name) |
| void | setThemeName(const QString &name) |
| void | setThemeSearchPaths(const QStringList &paths) |
| QString | themeName() |
| QStringList | themeSearchPaths() |
相关的非成员
| QDataStream & | operator<<(QDataStream &stream, const QIcon &icon) |
| QDataStream & | operator>>(QDataStream &stream, QIcon &icon) |
详细说明
QIcon 可以根据给定的一组位图生成较小、较大、活动和禁用的位图。Qt UI 组件使用这些位图来显示代表特定操作的图标。
从图像文件创建图标
构建 QIcon 的最简单方法是基于一个或多个图像文件或资源来创建。例如:
QToolButton *button = new QToolButton;
button->setIcon(QIcon("open.png"));QIcon 可以存储用于不同状态的多个图像,Qt 会选择与操作当前状态最匹配的图像。
Qt 会在需要时生成所需的图标样式和尺寸,例如,QIcon::Disabled 状态的位图可能是通过将提供的位图之一灰度化来生成的。
要清除图标,只需将其替换为空图标即可:
button->setIcon(QIcon());使用QImageReader::supportedImageFormats() 和QImageWriter::supportedImageFormats() 函数可获取支持的文件格式的完整列表。
注意:如果 使用 SVG 图像文件,请确保将其添加在任何非 SVG 文件之前,以便选择正确的icon engine 。
从主题或图标库创建图标
构建图标最便捷的方式是使用fromTheme() 工厂函数。在支持Freedesktop 图标主题规范的平台上,Qt 实现了对原生图标库的访问。
应用程序可以使用相同的主题规范来提供自己的图标库。请参阅下文中的主题描述示例以及相应的图像文件目录结构。
自 Qt 6.7 起,Qt 还可在 macOS、iOS 以及 Windows 10 和 11 上访问原生图标库。在 Android 平台上,只要系统中安装了MaterialIcons-Regular字体,或者该字体作为资源与应用程序一起打包在:/qt-project.org/icons/MaterialIcons-Regular.ttf 中,Qt 即可访问 Material 设计系统中的图标。
从 Qt 6.9 开始,Qt 可以从可用图标字体中的命名字形生成图标。将theme name 设置为字体的字体家族名称,并使用fromTheme() 并传入字形名称。
QIcon::setThemeName("Material Symbols Outlined");
QIcon muteIcon = QIcon::fromTheme(u"volume_off"_s);图标字体可以安装在系统上,也可以作为application font 打包在应用程序中。
图标引擎
在内部,QIcon 会实例化一个icon engine 后端来处理和渲染图标图像。图标引擎的类型由添加到 QIcon 对象中的第一个文件、位图或主题决定。随后添加的文件或位图将由同一引擎处理。
不同图标引擎在处理和渲染图标的方式上有所差异。默认的基于位图的引擎仅处理固定尺寸的图像,而QtSvg 模块则提供了一种图标引擎,能够根据请求的尺寸重新渲染提供的矢量图形文件,从而获得更高的质量。主题图标引擎通常仅提供来自原生平台图标库的图像,并忽略任何添加的文件或位图。
此外,还可以提供自定义图标引擎。这允许应用程序自定义生成的图标的各个方面。借助QIconEnginePlugin ,可以针对不同的文件后缀注册不同的图标引擎,从而使第三方能够为 Qt 自带的图标引擎提供额外的图标引擎。
在用户界面中使用 QIcon
如果您编写了自己的小部件,且该小部件具有设置小型位图的选项,请考虑允许将 QIcon 设置为该位图。Qt 类QToolButton 就是此类小部件的一个示例。
提供一个用于设置 QIcon 的方法,并使用paint 绘制该 QIcon,根据小部件的当前状态选择适当的参数。例如:
void MyWidget::drawIcon(QPainter *painter, const QRect &rect)
{
icon.paint(painter, rect, Qt::AlignCenter, isEnabled() ? QIcon::Normal
: QIcon::Disabled,
isChecked() ? QIcon::On
: QIcon::Off);
}当您使用 pixmap(QSize, Mode, State) 检索位图时,如果尚未通过addFile() 或addPixmap() 为给定的尺寸、模式和状态添加过位图,则 QIcon 会即时生成一个。 这种位图生成发生在QIconEngine 中。默认引擎会在需要时将位图缩小(但绝不会放大),并使用当前样式来计算禁用状态的外观。
您还可以利用Active 模式,例如当鼠标悬停在小部件上时(参见QWidget::enterEvent()),在按下鼠标按钮并等待释放以激活函数期间,或者当其为当前选定项时,将小部件设置为Active 状态。如果小部件支持状态切换,则可使用“On”模式绘制不同的图标。
由原生图标库或图标字体生成的 QIcon,其图标的“On ”和“Off ”状态使用相同的字形。应用程序可以根据相应 UI 控件或操作的状态来更改图标。在Qt Quick 应用程序中,可以通过绑定来实现这一点。
ToolButton {
id: muteButton
checkable: true
icon.name: checked ? "volume_off" : "volume_up"
}![]()
注意: 在创建图标之前,QIcon 需要一个QGuiApplication 实例。
高 DPI 图标
由原生图标库提供的图标,或从图标字体中的字形生成的图标,通常基于矢量图形,并将自动以适当的分辨率进行渲染。
当通过addFile() 提供自己的图像文件时,QIcon 将使用 Qt 的"@nx" high DPI syntax 。如果您有自己的自定义目录结构且不遵循Freedesktop 图标主题规范,这将非常有用。
当提供应用程序主题时,你需要遵循图标主题规范来指定不同分辨率应使用的文件。要让 QIcon 使用图像的高 DPI 版本,请在相应的index.theme 文件中添加一个额外条目:
[Icon Theme]
Name=Test
Comment=Test Theme
Directories=32x32/actions,32x32@2/actions
[32x32/actions]
Size=32
Context=Actions
Type=Fixed
# High DPI version of the entry above.
[32x32@2/actions]
Size=32
Scale=2
Type=Fixed此时,您的图标主题目录结构将大致如下所示:
├── 32x32
│ └── actions
│ └── appointment-new.png
├── 32x32@2
│ └── actions
│ └── appointment-new.png
└── index.theme成员类型 文档
enum QIcon::Mode
此枚举类型描述了位图的预期使用模式。当前定义的模式包括:
| 常量 | 值 | 描述 |
|---|---|---|
QIcon::Normal | 0 | 当用户未与图标进行交互,但图标所代表的功能可用时,显示该位图。 |
QIcon::Disabled | 1 | 当图标所代表的功能不可用时显示位图。 |
QIcon::Active | 2 | 当图标所代表的功能可用且用户正在与图标进行交互(例如,将鼠标悬停在图标上或单击图标)时,显示该位图。 |
QIcon::Selected | 3 | 当图标所代表的项目被选中时,显示该位图。 |
enum QIcon::State
此枚举描述了像素图的预期使用状态。该状态可以是:
| 常量 | 值 | 描述 |
|---|---|---|
QIcon::On | 0 | 当控件处于“开启”状态时显示位图 |
QIcon::Off | 1 | 当控件处于“关闭”状态时显示位图 |
[since 6.7] enum class QIcon::ThemeIcon
此枚举可用于访问大多数图标主题实现所提供的图标。
| 常量 | 值 | 描述 |
|---|---|---|
QIcon::ThemeIcon::AddressBookNew | 0 | 用于创建新通讯录的操作图标。 |
QIcon::ThemeIcon::ApplicationExit | 1 | 用于退出应用程序的图标。 |
QIcon::ThemeIcon::AppointmentNew | 2 | 用于创建新约会的操作图标。 |
QIcon::ThemeIcon::CallStart | 3 | 用于发起或接听通话的图标。 |
QIcon::ThemeIcon::CallStop | 4 | 用于结束当前通话的图标。 |
QIcon::ThemeIcon::ContactNew | 5 | 用于创建新联系人的操作图标。 |
QIcon::ThemeIcon::DocumentNew | 6 | 用于创建新文档的操作图标。 |
QIcon::ThemeIcon::DocumentOpen | 7 | 用于打开文档的操作图标。 |
QIcon::ThemeIcon::DocumentOpenRecent | 8 | 用于打开最近打开过的文档的操作图标。 |
QIcon::ThemeIcon::DocumentPageSetup | 9 | “页面设置”操作的图标。 |
QIcon::ThemeIcon::DocumentPrint | 10 | 打印操作的图标。 |
QIcon::ThemeIcon::DocumentPrintPreview | 11 | 打印预览操作的图标。 |
QIcon::ThemeIcon::DocumentProperties | 12 | 查看文档属性的操作图标。 |
QIcon::ThemeIcon::DocumentRevert | 13 | 还原到文档先前版本的操作图标。 |
QIcon::ThemeIcon::DocumentSave | 14 | “保存”操作的图标。 |
QIcon::ThemeIcon::DocumentSaveAs | 15 | “另存为”操作的图标。 |
QIcon::ThemeIcon::DocumentSend | 16 | “发送”操作的图标。 |
QIcon::ThemeIcon::EditClear | 17 | 清除操作的图标。 |
QIcon::ThemeIcon::EditCopy | 18 | “复制”操作的图标。 |
QIcon::ThemeIcon::EditCut | 19 | “剪切”操作的图标。 |
QIcon::ThemeIcon::EditDelete | 20 | “删除”操作的图标。 |
QIcon::ThemeIcon::EditFind | 21 | “查找”操作的图标。 |
QIcon::ThemeIcon::EditPaste | 22 | 粘贴操作的图标。 |
QIcon::ThemeIcon::EditRedo | 23 | “重做”操作的图标。 |
QIcon::ThemeIcon::EditSelectAll | 24 | “全选”操作的图标。 |
QIcon::ThemeIcon::EditUndo | 25 | 撤销操作的图标。 |
QIcon::ThemeIcon::FolderNew | 26 | 创建新文件夹的图标。 |
QIcon::ThemeIcon::FormatIndentLess | 27 | 缩小缩进格式化操作的图标。 |
QIcon::ThemeIcon::FormatIndentMore | 28 | 增加缩进格式操作的图标。 |
QIcon::ThemeIcon::FormatJustifyCenter | 29 | 居中对齐格式设置操作的图标。 |
QIcon::ThemeIcon::FormatJustifyFill | 30 | 填充对齐格式化操作的图标。 |
QIcon::ThemeIcon::FormatJustifyLeft | 31 | 左对齐格式设置操作的图标。 |
QIcon::ThemeIcon::FormatJustifyRight | 32 | 右对齐操作的图标。 |
QIcon::ThemeIcon::FormatTextDirectionLtr | 33 | 从左到右文本格式设置操作的图标。 |
QIcon::ThemeIcon::FormatTextDirectionRtl | 34 | 从右到左文本格式设置操作的图标。 |
QIcon::ThemeIcon::FormatTextBold | 35 | 加粗文本格式设置操作的图标。 |
QIcon::ThemeIcon::FormatTextItalic | 36 | 斜体文本格式设置操作的图标。 |
QIcon::ThemeIcon::FormatTextUnderline | 37 | 下划线文本格式化操作的图标。 |
QIcon::ThemeIcon::FormatTextStrikethrough | 38 | 删除线文本格式化操作的图标。 |
QIcon::ThemeIcon::GoDown | 39 | 列表中向下移动操作的图标。 |
QIcon::ThemeIcon::GoHome | 40 | “转到首页”操作的图标。 |
QIcon::ThemeIcon::GoNext | 41 | “转到列表中下一项”操作的图标。 |
QIcon::ThemeIcon::GoPrevious | 42 | “在列表中向上移动”操作的图标。 |
QIcon::ThemeIcon::GoUp | 43 | 列表中向上移动操作的图标。 |
QIcon::ThemeIcon::HelpAbout | 44 | “帮助”菜单中“关于”选项的图标。 |
QIcon::ThemeIcon::HelpFaq | 45 | “帮助”菜单中“常见问题”选项的图标。 |
QIcon::ThemeIcon::InsertImage | 46 | 应用程序中“插入图片”操作的图标。 |
QIcon::ThemeIcon::InsertLink | 47 | 应用程序中“插入链接”操作的图标。 |
QIcon::ThemeIcon::InsertText | 48 | 应用程序中“插入文本”操作的图标。 |
QIcon::ThemeIcon::ListAdd | 49 | “添加到列表”操作的图标。 |
QIcon::ThemeIcon::ListRemove | 50 | “从列表中删除”操作的图标。 |
QIcon::ThemeIcon::MailForward | 51 | “转发”操作的图标。 |
QIcon::ThemeIcon::MailMarkImportant | 52 | “标记为重要”操作的图标。 |
QIcon::ThemeIcon::MailMarkRead | 53 | “标记为已读”操作的图标。 |
QIcon::ThemeIcon::MailMarkUnread | 54 | “标记为未读”操作的图标。 |
QIcon::ThemeIcon::MailMessageNew | 55 | “撰写新邮件”操作的图标。 |
QIcon::ThemeIcon::MailReplyAll | 56 | “回复所有人”操作的图标。 |
QIcon::ThemeIcon::MailReplySender | 57 | “回复发件人”操作的图标。 |
QIcon::ThemeIcon::MailSend | 58 | “发送”操作的图标。 |
QIcon::ThemeIcon::MediaEject | 59 | 媒体播放器或文件管理器的“弹出”操作图标。 |
QIcon::ThemeIcon::MediaPlaybackPause | 60 | 媒体播放器“暂停”操作的图标。 |
QIcon::ThemeIcon::MediaPlaybackStart | 61 | 媒体播放器的“开始播放”操作图标。 |
QIcon::ThemeIcon::MediaPlaybackStop | 62 | 媒体播放器“停止”操作的图标。 |
QIcon::ThemeIcon::MediaRecord | 63 | 媒体应用程序的录制操作图标。 |
QIcon::ThemeIcon::MediaSeekBackward | 64 | 媒体播放器中“向后快进”操作的图标。 |
QIcon::ThemeIcon::MediaSeekForward | 65 | 媒体播放器的快进图标。 |
QIcon::ThemeIcon::MediaSkipBackward | 66 | 媒体播放器的“向后跳过”操作图标。 |
QIcon::ThemeIcon::MediaSkipForward | 67 | 媒体播放器的“向前跳过”操作图标。 |
QIcon::ThemeIcon::ObjectRotateLeft | 68 | 对对象执行“向左旋转”操作的图标。 |
QIcon::ThemeIcon::ObjectRotateRight | 69 | 对对象执行“向右旋转”操作的图标。 |
QIcon::ThemeIcon::ProcessStop | 70 | 在处理过程可能需要一段时间的应用程序(例如浏览器中的网页加载)中,用于表示“停止”操作的图标。 |
QIcon::ThemeIcon::SystemLockScreen | 71 | 用于锁定屏幕操作的图标。 |
QIcon::ThemeIcon::SystemLogOut | 72 | 用于“注销”操作的图标。 |
QIcon::ThemeIcon::SystemSearch | 73 | 搜索操作的图标。 |
QIcon::ThemeIcon::SystemReboot | 74 | 重启操作的图标。 |
QIcon::ThemeIcon::SystemShutdown | 75 | 关机操作的图标。 |
QIcon::ThemeIcon::ToolsCheckSpelling | 76 | 拼写检查操作的图标。 |
QIcon::ThemeIcon::ViewFullscreen | 77 | 全屏操作的图标。 |
QIcon::ThemeIcon::ViewRefresh | 78 | 刷新操作的图标。 |
QIcon::ThemeIcon::ViewRestore | 79 | 退出全屏视图的图标。 |
QIcon::ThemeIcon::WindowClose | 80 | 关闭窗口操作的图标。 |
QIcon::ThemeIcon::WindowNew | 81 | “新建窗口”操作的图标。 |
QIcon::ThemeIcon::ZoomFitBest | 82 | “最佳适配”操作的图标。 |
QIcon::ThemeIcon::ZoomIn | 83 | 放大操作的图标。 |
QIcon::ThemeIcon::ZoomOut | 84 | 缩小操作的图标。 |
QIcon::ThemeIcon::AudioCard | 85 | 音频渲染设备的图标。 |
QIcon::ThemeIcon::AudioInputMicrophone | 86 | 麦克风音频输入设备的图标。 |
QIcon::ThemeIcon::Battery | 87 | 系统电池设备的图标。 |
QIcon::ThemeIcon::CameraPhoto | 88 | 数码照相机设备的图标。 |
QIcon::ThemeIcon::CameraVideo | 89 | 摄像机设备的图标。 |
QIcon::ThemeIcon::CameraWeb | 90 | 网络摄像头的图标。 |
QIcon::ThemeIcon::Computer | 91 | 代表整个计算设备的图标。 |
QIcon::ThemeIcon::DriveHarddisk | 92 | 硬盘驱动器的图标。 |
QIcon::ThemeIcon::DriveOptical | 93 | 光盘驱动器(如CD和DVD)的图标。 |
QIcon::ThemeIcon::InputGaming | 94 | 游戏输入设备的图标。 |
QIcon::ThemeIcon::InputKeyboard | 95 | 键盘输入设备的图标。 |
QIcon::ThemeIcon::InputMouse | 96 | 鼠标输入设备的图标。 |
QIcon::ThemeIcon::InputTablet | 97 | 图形输入板的图标。 |
QIcon::ThemeIcon::MediaFlash | 98 | 闪存介质的图标,例如记忆棒。 |
QIcon::ThemeIcon::MediaOptical | 99 | 物理光盘介质(如 CD 和 DVD)的图标。 |
QIcon::ThemeIcon::MediaTape | 100 | 通用物理磁带介质的图标。 |
QIcon::ThemeIcon::MultimediaPlayer | 101 | 通用多媒体播放设备的图标。 |
QIcon::ThemeIcon::NetworkWired | 102 | 有线网络连接的图标。 |
QIcon::ThemeIcon::NetworkWireless | 103 | 无线网络连接的图标。 |
QIcon::ThemeIcon::Phone | 104 | 电话设备的图标。 |
QIcon::ThemeIcon::Printer | 105 | 打印机设备的图标。 |
QIcon::ThemeIcon::Scanner | 106 | 扫描仪设备的图标。 |
QIcon::ThemeIcon::VideoDisplay | 107 | 用于显示视频的显示器图标。 |
QIcon::ThemeIcon::AppointmentMissed | 108 | 表示错过约会的图标。 |
QIcon::ThemeIcon::AppointmentSoon | 109 | 表示即将有约会的图标。 |
QIcon::ThemeIcon::AudioVolumeHigh | 110 | 用于表示音量过大的图标。 |
QIcon::ThemeIcon::AudioVolumeLow | 111 | 用于表示音量较低的图标。 |
QIcon::ThemeIcon::AudioVolumeMedium | 112 | 用于表示音量中等状态的图标。 |
QIcon::ThemeIcon::AudioVolumeMuted | 113 | 用于指示音频播放处于静音状态的图标。 |
QIcon::ThemeIcon::BatteryCaution | 114 | 电池电量低于40%时显示的图标。 |
QIcon::ThemeIcon::BatteryLow | 115 | 电池电量低于 20% 时显示的图标。 |
QIcon::ThemeIcon::DialogError | 116 | 用于向用户解释错误情况的对话框打开时的图标。 |
QIcon::ThemeIcon::DialogInformation | 117 | 当打开对话框向用户提供与所请求操作相关信息时使用的图标。 |
QIcon::ThemeIcon::DialogPassword | 118 | 打开请求用户身份验证凭据的对话框时使用的图标。 |
QIcon::ThemeIcon::DialogQuestion | 119 | 打开对话框向用户提出简单问题时使用的图标。 |
QIcon::ThemeIcon::DialogWarning | 120 | 当打开对话框以警告用户所请求的操作即将出现问题时使用的图标。 |
QIcon::ThemeIcon::FolderDragAccept | 121 | 当可接受的对象被拖拽到文件夹上时,该文件夹所使用的图标。 |
QIcon::ThemeIcon::FolderOpen | 122 | 当文件夹的内容在同一窗口中显示时,该文件夹使用的图标。 |
QIcon::ThemeIcon::FolderVisiting | 123 | 当文件夹的内容在另一个窗口中显示时,该文件夹使用的图标。 |
QIcon::ThemeIcon::ImageLoading | 124 | 在加载另一张图片时使用的图标。 |
QIcon::ThemeIcon::ImageMissing | 125 | 当无法加载另一张图片时使用的图标。 |
QIcon::ThemeIcon::MailAttachment | 126 | 包含附件的消息所使用的图标。 |
QIcon::ThemeIcon::MailUnread | 127 | 未读消息的图标。 |
QIcon::ThemeIcon::MailRead | 128 | 已读消息的图标。 |
QIcon::ThemeIcon::MailReplied | 129 | 已回复消息的图标。 |
QIcon::ThemeIcon::MediaPlaylistRepeat | 130 | 媒体播放器的循环播放模式图标。 |
QIcon::ThemeIcon::MediaPlaylistShuffle | 131 | 媒体播放器的随机播放模式图标。 |
QIcon::ThemeIcon::NetworkOffline | 132 | 用于指示设备未连接到网络的图标。 |
QIcon::ThemeIcon::PrinterPrinting | 133 | 打印任务成功排入打印设备队列时使用的图标。 |
QIcon::ThemeIcon::SecurityHigh | 134 | 用于指示某项的安全级别已知较高的图标。 |
QIcon::ThemeIcon::SecurityLow | 135 | 用于指示某项目已知安全级别较低的图标。 |
QIcon::ThemeIcon::SoftwareUpdateAvailable | 136 | 用于指示有更新可用的图标。 |
QIcon::ThemeIcon::SoftwareUpdateUrgent | 137 | 用于指示有紧急更新可用的图标。 |
QIcon::ThemeIcon::SyncError | 138 | 在尝试跨设备同步数据时发生错误时显示的图标。 |
QIcon::ThemeIcon::SyncSynchronizing | 139 | 表示数据正在设备间成功同步时显示的图标。 |
QIcon::ThemeIcon::UserAvailable | 140 | 用于表示用户在线的图标。 |
QIcon::ThemeIcon::UserOffline | 141 | 用于表示用户不可用的图标。 |
QIcon::ThemeIcon::WeatherClear | 142 | 用于表示天空晴朗的图标。 |
QIcon::ThemeIcon::WeatherClearNight | 143 | 用于表示夜间天空晴朗的图标。 |
QIcon::ThemeIcon::WeatherFewClouds | 144 | 用于表示天空多云的图标。 |
QIcon::ThemeIcon::WeatherFewCloudsNight | 145 | 用于表示夜间多云的图标。 |
QIcon::ThemeIcon::WeatherFog | 146 | 用于表示有雾的图标。 |
QIcon::ThemeIcon::WeatherShowers | 147 | 用于表示正在下阵雨的图标。 |
QIcon::ThemeIcon::WeatherSnow | 148 | 用于表示正在下雪的图标。 |
QIcon::ThemeIcon::WeatherStorm | 149 | 用于表示天气有暴风雨的图标。 |
该枚举在 Qt 6.7 中引入。
另请参阅 Creating an icon from a theme or icon library 和fromTheme()。
成员函数文档
[noexcept] QIcon::QIcon()
创建一个空图标。
[explicit] QIcon::QIcon(QIconEngine *engine)
使用指定的图标创建一个图标engine 。该图标将接管引擎。
QIcon::QIcon(const QPixmap &pixmap)
根据pixmap 对象构建一个图标。
[explicit] QIcon::QIcon(const QString &fileName)
根据给定的fileName ,从文件中生成图标。该文件将按需加载。
如果 `fileName ` 包含相对路径(例如仅包含文件名),则必须相对于运行时工作目录查找该文件。
文件名可以指向磁盘上的实际文件,也可以指向应用程序的嵌入式资源之一。有关如何将图像和其他资源文件嵌入应用程序可执行文件的详细信息,请参阅“资源系统”概述。
请使用QImageReader::supportedImageFormats() 和QImageWriter::supportedImageFormats() 函数来获取支持的文件格式的完整列表。
QIcon::QIcon(const QIcon &other)
创建other 的副本。该操作非常快。
[noexcept] QIcon::QIcon(QIcon &&other)
通过“move”构造一个 QIcon 实例,使其指向与 `other ` 所指向的同一对象。
[noexcept] QIcon::~QIcon()
删除该图标。
QSize QIcon::actualSize(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回所请求的size 、mode 和state 图标的实际尺寸。结果可能小于请求的尺寸,但绝不会大于请求的尺寸。返回的尺寸以设备无关像素为单位(这对高DPI位图很重要)。
void QIcon::addFile(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = Normal, QIcon::State state = Off)
将指定fileName 的文件中的图像添加到图标中,作为size 、mode 和state 的特化实现。该文件将按需加载。注意:自定义图标引擎可以忽略额外添加的位图。
如果fileName 包含相对路径(例如仅包含文件名),则必须以运行时工作目录为基准查找相关文件。
文件名可以指向磁盘上的实际文件,也可以指向应用程序的嵌入式资源之一。有关如何将图像和其他资源文件嵌入应用程序可执行文件的详细信息,请参阅“资源系统”概述。
使用QImageReader::supportedImageFormats() 和QImageWriter::supportedImageFormats() 函数可获取支持的文件格式的完整列表。
如果存在该图像的高分辨率版本(通过基名后的后缀@2x 标识),系统会自动加载该版本并将其添加,同时将设备像素比设置为 2。可通过设置环境变量QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING 来禁用此功能(参见QImageReader )。
注意:当 您将一个非空文件名添加到QIcon时 ,即使该文件不存在或指向一个损坏的文件,图标也会变为非空。
另请参阅 addPixmap() 和QPixmap::devicePixelRatio()。
void QIcon::addPixmap(const QPixmap &pixmap, QIcon::Mode mode = Normal, QIcon::State state = Off)
向图标添加“pixmap ”,作为“mode ”和“state ”的专项功能。
自定义图标引擎可以忽略额外添加的位图。
另请参阅 addFile()。
QList<QSize> QIcon::availableSizes(QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回指定mode 和state 的可用图标尺寸列表。
qint64 QIcon::cacheKey() const
返回一个用于标识此QIcon 对象内容的标识符。如果不同的QIcon 对象指向相同的内容,它们可以具有相同的键。
当通过 `addPixmap()` 或 `addFile()` 更改图标时,`cacheKey()` 值也会随之改变。
缓存键主要在与缓存功能结合使用时非常有用。
另请参阅 QPixmap::cacheKey()。
[static] QStringList QIcon::fallbackSearchPaths()
返回图标的备用搜索路径。
如果current icon theme 或fallback icon theme 在查找图标时未提供结果,系统将参考这些备用搜索路径来查找独立的图标文件。
如果未设置,则后备搜索路径将由平台定义。
另请参阅 setFallbackSearchPaths() 和themeSearchPaths()。
[static] QString QIcon::fallbackThemeName()
返回备用图标主题的名称。
如果未设置,则备用图标主题将由平台定义。
注意:目前,平台备用 图标主题仅在基于Freedesktop的系统上实现,且图标主题取决于您的桌面设置。
另请参阅 setFallbackThemeName() 和themeName()。
[static] QIcon QIcon::fromTheme(const QString &name)
返回current icon theme 中与name 对应的QIcon 。
如果当前主题未提供name 的图标,则会先查询fallback icon theme ,随后再回退到在fallback icon search path 中查找独立图标文件。最后,会查询平台的原生图标库。
要从当前图标主题中获取图标:
如果未通过setThemeName() 显式设置icon theme ,则将使用平台定义的图标主题。
另请参阅 themeName()、fallbackThemeName()、setThemeName()、themeSearchPaths()、fallbackSearchPaths() 以及Freedesktop 图标命名规范。
[static, since 6.7] QIcon QIcon::fromTheme(QIcon::ThemeIcon icon)
[static, since 6.7] QIcon QIcon::fromTheme(QIcon::ThemeIcon icon, const QIcon &fallback)
返回current icon theme 中与icon 对应的QIcon 。
如果当前主题未提供icon 的图标,则会先查询fallback icon theme ,随后退而查询fallback icon search path 中的独立图标文件。最后,会查询平台的原生图标库。
如果未找到图标且提供了fallback ,则返回fallback 。这有助于提供有保障的备用方案,无论当前的图标主题集和备用路径是否支持所请求的图标。
如果未找到图标且未提供fallback ,则返回一个通过默认构造函数创建的空QIcon 。
这些函数在 Qt 6.7 中引入。
[static] QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)
返回current icon theme 中与name 对应的QIcon 。
如果当前主题未提供name 的图标,则会先查询fallback icon theme ,随后退而查询fallback icon search path 中的独立图标文件。最后,会查询平台的原生图标库。
如果未找到图标,则返回fallback 。
这有助于提供有保障的备用方案,无论当前的图标主题集和备用路径是否支持所请求的图标。
例如:
这是一个重载函数。
另请参阅 fallbackThemeName() 和fallbackSearchPaths()。
[static] bool QIcon::hasThemeIcon(const QString &name)
如果当前图标主题或任何备用主题中存在适用于name 的图标(如fromTheme() 所述),则返回true ;否则返回false 。
另请参阅 themeSearchPaths()、fromTheme() 和setThemeName()。
[static, since 6.7] bool QIcon::hasThemeIcon(QIcon::ThemeIcon icon)
如果当前图标主题或任何备用主题中存在适用于icon 的图标(如fromTheme() 所述),则返回true ;否则返回false 。
这是一个重载函数。
该函数在 Qt 6.7 中引入。
另请参阅 fromTheme()。
bool QIcon::isMask() const
如果该图标已被标记为蒙版图像,则返回true 。某些平台对蒙版图标的渲染方式不同(例如,macOS 上的菜单图标)。
另请参阅 setIsMask()。
bool QIcon::isNull() const
如果图标为空,则返回true ;否则返回false 。
如果图标既没有位图也没有文件名,则该图标为空。
注意:即使图标不为空,也可能无法创建有效的位图,例如文件不存在或无法读取时。
QString QIcon::name() const
返回用于创建图标的名称(如有)。
根据图标的创建方式,它可能有一个关联的名称。使用fromTheme() 创建的图标即属于这种情况。
另请参阅 fromTheme() 和QIconEngine::iconName()。
void QIcon::paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const
使用painter 方法,将图标绘制到矩形rect 内,并使用指定的alignment 、必需的mode 以及state 。
另请参阅 actualSize() 和pixmap()。
void QIcon::paint(QPainter *painter, int x, int y, int w, int h, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const
将图标绘制到矩形中:QRect (x 、y 、w 、h )。
这是一个重载函数。
QPixmap QIcon::pixmap(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回一个具有指定size 、mode 和state 的像素图,必要时会生成一个。该像素图可能小于请求的尺寸,但绝不会大于请求的尺寸,除非返回的像素图的设备像素比大于1。
另请参阅 actualSize() 和paint()。
QPixmap QIcon::pixmap(int extent, QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回一个大小为QSize 的像素图(extent ,extent )。该像素图的大小可能小于请求的大小,但绝不会大于请求的大小,除非返回的像素图的设备像素比大于1。
这是一个重载函数。
[since 6.0] QPixmap QIcon::pixmap(const QSize &size, qreal devicePixelRatio, QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回一个具有所请求的size 、devicePixelRatio 、mode 和state 的像素图,必要时会根据给定的mode 和state 生成一个新的像素图。该像素图可能小于所请求的尺寸,但绝不会大于所请求的尺寸,除非返回的像素图的设备像素比大于1。
注意: 请求的devicePixelRatio 可能与返回的值不一致。这会延迟QPixmap 的缩放操作,直到后续绘制时才会进行。
注意:在 Qt 6.8之前, 此函数会错误地将设备相关的 pixmap 尺寸传递给QIconEngine::scaledPixmap();自 Qt 6.8 起,它传递的是设备无关的尺寸(不按devicePixelRatio 进行缩放)。
这是一个重载函数。
该函数在 Qt 6.0 中引入。
另请参阅 actualSize() 和paint()。
QPixmap QIcon::pixmap(int w, int h, QIcon::Mode mode = Normal, QIcon::State state = Off) const
返回一个大小为QSize 的像素图(w ,h )。该像素图的大小可能小于请求的大小,但绝不会大于请求的大小,除非返回的像素图的设备像素比大于1。
这是一个重载函数。
[static] void QIcon::setFallbackSearchPaths(const QStringList &paths)
将图标的备用搜索路径设置为paths 。
如果current icon theme 或fallback icon theme 在查找图标时未提供结果,系统将参考这些备用搜索路径来查找独立的图标文件。
例如:
另请参阅 fallbackSearchPaths() 和setThemeSearchPaths()。
[static] void QIcon::setFallbackThemeName(const QString &name)
将备用图标主题设置为name 。
当current icon theme 未提供某些图标,或者current icon theme 不存在时,系统会参考备用图标主题。
name 应与setThemeName() 中记录的格式一致,并将通过themeSearchPaths() 进行查找。
注意: 应在创建QGuiApplication 之前设置备用 图标主题,以确保正确初始化。
另请参阅 fallbackThemeName()、themeSearchPaths() 和themeName()。
void QIcon::setIsMask(bool isMask)
指示该图标为蒙版图像(布尔值isMask ),因此可根据其显示位置进行修改。
另请参阅 isMask()。
[static] void QIcon::setThemeName(const QString &name)
将当前图标主题设置为name 。
如果该主题名称与已安装的、提供命名字形的字体名称匹配,则QIcon::fromTheme 中调用与其中一个字形匹配的名称将生成该字形的图标。
否则,将在 `themeSearchPaths()` 中查找该主题。目前唯一受支持的图标主题格式是Freedesktop 图标主题规范。`name ` 应对应 `themeSearchPath()` 中的一个目录名称,该目录内应包含一个描述其内容的 `index.theme ` 文件。
另请参阅 themeSearchPaths()、themeName() 以及Freedesktop 图标主题规范。
[static] void QIcon::setThemeSearchPaths(const QStringList &paths)
将图标主题的搜索路径设置为paths 。
paths 文件的内容应遵循setThemeName() 中记录的主题格式。
另请参阅 themeSearchPaths()、fromTheme() 以及setThemeName()。
[noexcept] void QIcon::swap(QIcon &other)
将此图标替换为other 。此操作非常快速,且从不会失败。
[static] QString QIcon::themeName()
返回当前图标主题的名称。
如果未设置,则当前图标主题将由平台定义。
注意: 目前,平台 图标主题仅在基于Freedesktop的系统上实现,且图标主题取决于您的桌面设置。
另请参阅 setThemeName()、themeSearchPaths()、fromTheme() 以及hasThemeIcon()。
[static] QStringList QIcon::themeSearchPaths()
返回图标主题的搜索路径。
默认搜索路径由平台定义。所有平台还将使用资源目录:\icons 作为备用路径。
另请参阅 setThemeSearchPaths()、fromTheme() 和setThemeName()。
QIcon::operator QVariant() const
将图标作为QVariant 返回。
[noexcept] QIcon &QIcon::operator=(QIcon &&other)
将other 通过Move操作赋值给该QIcon 实例。
QIcon &QIcon::operator=(const QIcon &other)
将other 图标分配给此图标,并返回对此图标的引用。
相关的非成员
QDataStream &operator<<(QDataStream &stream, const QIcon &icon)
将给定的icon 作为PNG图像写入给定的stream 。如果图标包含多张图像,所有图像都将写入该流。请注意,将该流写入文件不会生成有效的图像文件。
QDataStream &operator>>(QDataStream &stream, QIcon &icon)
将给定的stream 中的图像或一组图像读取到给定的icon 中。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.