QIcon Class
QIcon 类提供不同模式和状态下的可缩放图标。更多
Header: | #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) |
QVariant | 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() 函数可获取所支持文件格式的完整列表。
从主题或图标库创建图标
构建图标最方便的方法是使用fromTheme() 工厂函数。在支持自由桌面图标主题规范(Freedesktop Icon Theme Specification)的平台上,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 XML 附带的图标引擎之外提供额外的图标引擎。
在用户界面中使用 QIcon
如果您自己编写的窗口小部件有设置小像素图的选项,请考虑允许为该像素图设置 QIcon。Qt 类QToolButton 就是这样一个窗口小部件的例子。
提供一个设置 QIcon 的方法,并使用paint 绘制 QIcon,根据 widget 的当前状态选择适当的参数。例如
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
。如果窗口小部件可以切换,"开启 "模式可用于绘制不同的图标。
从本地图标库或图标字体生成的 QIcons 在图标的On
和Off
状态下都使用相同的字形。应用程序可以根据相应用户界面控件或操作的状态改变图标。在Qt Quick 应用程序中,这可以通过绑定来实现。
ToolButton { id: muteButton checkable: true icon.name: checked ? "volume_off" : "volume_up" }
注意: 在创建图标之前,QIcon 需要一个QGuiApplication 实例。
高 DPI 图标
由本地图标库提供的图标,或由图标字体中的字形生成的图标,通常基于矢量图形,并将自动以适当的分辨率呈现。
如果您通过addFile() 提供自己的图像文件,那么 QIcon 将使用 Qt XML 的"@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 中引入。
另请参阅 QIcon#Creating an icon from a theme or icon library 和fromTheme()。
成员函数文档
[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 中引入。
[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 图标的实际大小。结果可能会比请求的小,但绝不会比请求的大。返回的大小与设备无关,单位为像素(这与高分辨率像素图有关)。
void QIcon::addFile(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = Normal, QIcon::State state = Off)
作为size 、mode 和state 的特化,将给定fileName 文件中的图像添加到图标中。该文件将按需加载。注意:自定义图标引擎可以忽略额外添加的像素图。
如果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]
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)
如果当前图标主题或fromTheme() 所描述的任何回退中都有name 可用的图标,则返回true
,否则返回false
。
另请参阅 themeSearchPaths()、fromTheme() 和setThemeName()。
[static, since 6.7]
bool QIcon::hasThemeIcon(QIcon::ThemeIcon icon)
这是一个重载函数。
如果当前图标主题或任何回退(如fromTheme() 所述)中有可用图标icon ,则返回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 将图标绘制到指定的alignment 、所需的mode 和state 矩形rect 中。
另请参阅 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,否则该像素图可能会比请求的小,但绝不会比请求的大。
注意: 请求的设备像素比可能与返回的设备像素比不一致。这将延迟缩放QPixmap ,直到稍后绘制。
注意: 在 Qt 6.8 之前,此函数错误地将与设备相关的像素图大小传递给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() 中查找主题。目前唯一支持的图标主题格式是自由桌面图标主题规范。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()。
QVariant QIcon::operator QVariant() const
以QVariant 的形式返回图标。
[noexcept]
QIcon &QIcon::operator=(QIcon &&other)
Move-assignsother 到此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 。
© 2025 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.