QIcon 类

The QIcon class provides scalable icons in different modes and states. 更多...

头文件 #include <QIcon>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

公共类型

枚举模式 { Normal, Disabled, Active, Selected }
枚举状态 { Off, On }
(since 6.7) 枚举类主题图标 { AddressBookNew, ApplicationExit, AppointmentNew, CallStart, CallStop, …, WeatherStorm }

公共函数

QIcon()
QIcon(const QPixmap &pixmap)
QIcon(const QString &fileName)
QIcon(QIconEngine *engine)
QIcon(const QIcon &other)
QIcon(QIcon &&other)
~QIcon()
QSize实际大小(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const
void添加文件(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = Normal, QIcon::State state = Off)
void添加位图(const QPixmap &pixmap, QIcon::Mode mode = Normal, QIcon::State state = Off)
QList<QSize>可用大小(QIcon::Mode mode = Normal, QIcon::State state = Off) const
qint64缓存键() const
bool是否为遮罩() const
bool是否为空() const
QString名称() const
void绘制(QPainter *painter, const QRect &rect, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const
void绘制(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图标位图(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const
QPixmap图标位图(int w, int h, QIcon::Mode mode = Normal, QIcon::State state = Off) const
QPixmap图标位图(int extent, QIcon::Mode mode = Normal, QIcon::State state = Off) const
(since 6.0) QPixmappixmap(const QSize &size, qreal devicePixelRatio, QIcon::Mode mode = Normal, QIcon::State state = Off) const
voidsetIsMask(bool isMask)
voidswap(QIcon &other)
QVariantoperator QVariant() const
QIcon &operator=(const QIcon &other)
QIcon &operator=(QIcon &&other)

静态公共成员

QStringListfallbackSearchPaths()
QStringfallbackThemeName()
QIconfromTheme(const QString &name)
QIconfromTheme(const QString &name, const QIcon &fallback)
(since 6.7) QIconfromTheme(QIcon::ThemeIcon icon)
(since 6.7) QIconfromTheme(QIcon::ThemeIcon icon, const QIcon &fallback)
boolhasThemeIcon(const QString &name)
(since 6.7) boolhasThemeIcon(QIcon::ThemeIcon icon)
voidsetFallbackSearchPaths(const QStringList &paths)
voidsetFallbackThemeName(const QString &name)
voidsetThemeName(const QString &name)
voidsetThemeSearchPaths(const QStringList &paths)
QStringthemeName()
QStringListthemeSearchPaths()
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将选择与动作当前状态最匹配的图像。

QIcon openIcon("open.png");
openIcon.addFile("open-disabled.png", QIcon::Disabled);

Qt在需要时将生成所需的图标风格和大小,例如,QIcon::Disabled状态下的图标可能通过将提供的图块中的一种调整为灰色来生成。

要清除图标,只需将其替换为null图标即可

button->setIcon(QIcon());

使用QImageReader::supportedImageFormats()和QImageWriter::supportedImageFormats()函数来获取支持的完整文件格式列表。

从主题或图标库创建图标

构造图标的最大方便方式是使用fromTheme()工厂函数。Qt在支持Freedesktop Icon Theme规范的平台上实现对本地图标库的访问。自Qt 6.7起,Qt还提供对macOS、iOS、Windows 10和11的本地图标库的访问。在Android上,只要系统的MaterialIcons-Regular字体可用,或者作为应用资源打包到代码`:/qt-project.org/icons/MaterialIcons-Regular.ttf`中,Qt可以访问Material设计系统中的图标。

QIcon undoicon = QIcon::fromTheme(QIcon::ThemeIcon::EditUndo);

应用程序可以使用相同的主题规范来提供自己的图标库。下面是一个示例主题描述和相应的图像文件目录结构。来自应用程序提供的主题的图标优先于本地图标库。

此外,还可以提供自定义的图标引擎。这允许应用程序自定义生成图标的每个方面。通过QIconEnginePlugin,可以为不同的文件后缀注册不同的图标引擎,从而允许第三方为包含在Qt中的图标引擎提供附加的图标引擎。

创建使用 QIcon 的类

如果您编写了自己的具有设置小图标的选项的小部件,请考虑允许为该位图设置 QIcon。Qt 类QToolButton 就是这样的小部件示例。

提供设置 QIcon 的方法,并用 paint 画/icons/用,根据您小部件的当前状态选择适当的参数。例如

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 将在 fly 生成一个。这种位图生成是在QIconEngine 中发生的。默认情况下,引擎在需要时将位图缩小,但不会放大,并使用当前样式计算禁用外观。

您还可以使用 Active 模式,例如,在鼠标穿越小部件时(请参阅 QWidget::enterEvent()), 鼠标按下准备释放以激活功能时,或当前项是选中项时使小部件处于 Active 状态。如果小部件可以切换,可以使用 "On" 模式绘制不同的图标。

QIcon

注意: QIcon 需要在创建图标之前有一个 QGuiApplication 实例。

高 DPI 图标

由本地图标库提供的图标通常基于矢量图形,并且将自动在适当的分辨率下渲染。

当通过 addFile() 提供自己的图像文件时,QIcon 将使用 Qt 的 "@nx" 高 DPI 语法。如果您有自己定制的目录结构并且不遵循 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

成员类型文档

枚举QIcon::Mode

此枚举类型描述了用于使用位图的模式。当前定义的模式包括

常量描述
QIcon::Normal0当用户未与图标交互但表示该图标的功能可用时显示位图。
QIcon::Disabled1当表示该图标的功能不可用时显示位图。
QIcon::Active2当图标表示的功能可用且用户正在与图标交互时显示像素图,例如将鼠标移至其上或单击它。
QIcon::Selected3当图标表示的项目被选中时显示像素图。

枚举 QIcon::State

此枚举描述了像素图意图使用的状态。《状态》可以是

常量描述
QIcon::Off1当部件处于 "关闭" 状态时显示像素图
QIcon::On0当部件处于 "开启" 状态时显示像素图

[自 6.7] 枚举类 QIcon::ThemeIcon

此枚举提供对大多数图标主题实现提供的图标访问权限。

常量描述
QIcon::ThemeIcon::AddressBookNew0创建新通讯录的动作图标。
QIcon::ThemeIcon::ApplicationExit1退出应用程序的动作图标。
QIcon::ThemeIcon::AppointmentNew2创建新约会动作的图标。
QIcon::ThemeIcon::CallStart3发起或接受通话的动作图标。
QIcon::ThemeIcon::CallStop4停止当前通话的动作图标。
QIcon::ThemeIcon::ContactNew5创建新联系人的动作图标。
QIcon::ThemeIcon::DocumentNew6创建新文档的动作图标。
QIcon::ThemeIcon::DocumentOpen7打开文档的动作图标。
QIcon::ThemeIcon::DocumentOpenRecent8打开最近打开的文档的动作图标。
QIcon::ThemeIcon::DocumentPageSetup9页面设置的图标动作。
QIcon::ThemeIcon::DocumentPrint10打印动作图标。
QIcon::ThemeIcon::DocumentPrintPreview11打印预览动作图标。
QIcon::ThemeIcon::DocumentProperties12查看文档属性的图标动作。
QIcon::ThemeIcon::DocumentRevert13将文档恢复到以前的版本的图标动作。
QIcon::ThemeIcon::DocumentSave14保存动作图标。
QIcon::ThemeIcon::DocumentSaveAs15另存为动作图标。
QIcon::ThemeIcon::DocumentSend16发送动作图标。
QIcon::ThemeIcon::EditClear17清除动作图标。
QIcon::ThemeIcon::EditCopy18复制动作图标。
QIcon::ThemeIcon::EditCut19剪切动作图标。
QIcon::ThemeIcon::EditDelete20删除动作图标。
QIcon::ThemeIcon::EditFind21查找动作图标。
QIcon::ThemeIcon::EditPaste22粘贴动作图标。
QIcon::ThemeIcon::EditRedo23重做动作图标。
QIcon::ThemeIcon::EditSelectAll24全选动作图标。
QIcon::ThemeIcon::EditUndo25撤销动作图标。
QIcon::ThemeIcon::FolderNew26创建新文件夹的图标。
QIcon::ThemeIcon::FormatIndentLess27减少缩进格式的动作图标。
QIcon::ThemeIcon::FormatIndentMore28增加缩进格式的动作图标。
QIcon::ThemeIcon::FormatJustifyCenter29居中对齐格式的动作图标。
QIcon::ThemeIcon::FormatJustifyFill30填充对齐格式的动作图标。
QIcon::ThemeIcon::FormatJustifyLeft31左对齐格式的动作图标。
QIcon::ThemeIcon::FormatJustifyRight32右对齐动作图标。
QIcon::ThemeIcon::FormatTextDirectionLtr33从左到右文本格式化的动作图标。
QIcon::ThemeIcon::FormatTextDirectionRtl34从右到左格式化的动作图标。
QIcon::ThemeIcon::FormatTextBold35加粗文本格式化的动作图标。
QIcon::ThemeIcon::FormatTextItalic36斜体文本格式化的动作图标。
QIcon::ThemeIcon::FormatTextUnderline37下划线文本格式化的动作图标。
QIcon::ThemeIcon::FormatTextStrikethrough38横线文本格式化操作的图标。
QIcon::ThemeIcon::GoDown39“向下滑动列表”操作的图标。
QIcon::ThemeIcon::GoHome40“跳转到首页位置”操作的图标。
QIcon::ThemeIcon::GoNext41“跳转到列表中的下一个项目”操作的图标。
QIcon::ThemeIcon::GoPrevious42“跳转到列表中的上一个项目”操作的图标。
QIcon::ThemeIcon::GoUp43“向上滑动列表”操作的图标。
QIcon::ThemeIcon::HelpAbout44帮助菜单中“关于”项的图标。
QIcon::ThemeIcon::HelpFaq45帮助菜单中“常见问题”项的图标。
QIcon::ThemeIcon::InsertImage46应用程序中“插入图片”操作对应的图标。
QIcon::ThemeIcon::InsertLink47应用程序中“插入链接”操作对应的图标。
QIcon::ThemeIcon::InsertText48应用程序中“插入文本”操作对应的图标。
QIcon::ThemeIcon::ListAdd49“添加到列表”操作的图标。
QIcon::ThemeIcon::ListRemove50“从列表中删除”操作的图标。
QIcon::ThemeIcon::MailForward51“转发”操作的图标。
QIcon::ThemeIcon::MailMarkImportant52“标记为重要”操作的图标。
QIcon::ThemeIcon::MailMarkRead53“标记为已读”操作的图标。
QIcon::ThemeIcon::MailMarkUnread54“标记为未读”操作的图标。
QIcon::ThemeIcon::MailMessageNew55“创作新邮件”操作的图标。
QIcon::ThemeIcon::MailReplyAll56“回复所有人”操作的图标。
QIcon::ThemeIcon::MailReplySender57“回复发件人”操作的图标。
QIcon::ThemeIcon::MailSend58发送动作图标。
QIcon::ThemeIcon::MediaEject59媒体播放器或文件管理器中“弹出”操作的图标。
QIcon::ThemeIcon::MediaPlaybackPause60媒体播放器中“暂停”操作的图标。
QIcon::ThemeIcon::MediaPlaybackStart61媒体播放器中“开始播放”操作的图标。
QIcon::ThemeIcon::MediaPlaybackStop62媒体播放器中“停止”操作的图标。
QIcon::ThemeIcon::MediaRecord63媒体应用中“录制”操作的图标。
QIcon::ThemeIcon::MediaSeekBackward64媒体播放器中“后退搜索”操作的图标。
QIcon::ThemeIcon::MediaSeekForward65媒体播放器中“前进搜索”操作的图标。
QIcon::ThemeIcon::MediaSkipBackward66媒体播放器中“快退”操作的图标。
QIcon::ThemeIcon::MediaSkipForward67媒体播放器中“快进”操作的图标。
QIcon::ThemeIcon::ObjectRotateLeft68对对象执行“左旋转”操作的图标。
QIcon::ThemeIcon::ObjectRotateRight69对对象执行“右旋转”操作的图标。
QIcon::ThemeIcon::ProcessStop70具有可能需要较长时间处理的操作的程序中的“停止”操作的图标,例如浏览器中网页的加载。
QIcon::ThemeIcon::SystemLockScreen71“锁定屏幕”操作的图标。
QIcon::ThemeIcon::SystemLogOut72“注销”操作的图标。
QIcon::ThemeIcon::SystemSearch73“搜索”操作的图标。
QIcon::ThemeIcon::SystemReboot74“重启”操作的图标。
QIcon::ThemeIcon::SystemShutdown75“关机”操作的图标。
QIcon::ThemeIcon::ToolsCheckSpelling76“检查拼写”操作的图标。
QIcon::ThemeIcon::ViewFullscreen77“全屏”操作的图标。
QIcon::ThemeIcon::ViewRefresh78“刷新”操作的图标。
QIcon::ThemeIcon::ViewRestore79退出全屏视图的图标。
QIcon::ThemeIcon::WindowClose80“关闭窗口”操作的图标。
QIcon::ThemeIcon::WindowNew81“新建窗口”操作的图标。
QIcon::ThemeIcon::ZoomFitBest82“最佳匹配”操作的图标。
QIcon::ThemeIcon::ZoomIn83“放大”操作的图标。
QIcon::ThemeIcon::ZoomOut84缩小操作的图标。
QIcon::ThemeIcon::AudioCard85音频渲染设备的图标。
QIcon::ThemeIcon::AudioInputMicrophone86麦克风音频输入设备的图标。
QIcon::ThemeIcon::Battery87系统电池设备的图标。
QIcon::ThemeIcon::CameraPhoto88数码相机的图标。
QIcon::ThemeIcon::CameraVideo89视频摄像头的图标。
QIcon::ThemeIcon::CameraWeb90网络摄像头的图标。
QIcon::ThemeIcon::Computer91整个计算设备的图标。
QIcon::ThemeIcon::DriveHarddisk92硬盘驱动器的图标。
QIcon::ThemeIcon::DriveOptical93CD和DVD等光驱的图标。
QIcon::ThemeIcon::InputGaming94游戏输入设备的图标。
QIcon::ThemeIcon::InputKeyboard95键盘输入设备的图标。
QIcon::ThemeIcon::InputMouse96鼠标输入设备的图标。
QIcon::ThemeIcon::InputTablet97绘图板输入设备的图标。
QIcon::ThemeIcon::MediaFlash98闪存(如U盘)的图标。
QIcon::ThemeIcon::MediaOptical99物理光学媒介(如CD和DVD)的图标。
QIcon::ThemeIcon::MediaTape100通用物理磁带媒介的图标。
QIcon::ThemeIcon::MultimediaPlayer101通用多媒体播放设备的图标。
QIcon::ThemeIcon::NetworkWired102有线网络连接的图标。
QIcon::ThemeIcon::NetworkWireless103无线网络连接的图标。
QIcon::ThemeIcon::Phone104电话设备的图标。
QIcon::ThemeIcon::Printer105打印设备的图标。
QIcon::ThemeIcon::Scanner106扫描设备的图标。
QIcon::ThemeIcon::VideoDisplay107视频显示在的显示器图标。
QIcon::ThemeIcon::AppointmentMissed108错过预约的图标。
QIcon::ThemeIcon::AppointmentSoon109即将发生的预约的图标。
QIcon::ThemeIcon::AudioVolumeHigh110表示高音量的图标。
QIcon::ThemeIcon::AudioVolumeLow111表示低音量的图标。
QIcon::ThemeIcon::AudioVolumeMedium112表示中等音量的图标。
QIcon::ThemeIcon::AudioVolumeMuted113表示声音静音状态的图标。
QIcon::ThemeIcon::BatteryCaution114当电池电量低于40%时使用的图标。
QIcon::ThemeIcon::BatteryLow115当电池电量低于20%时使用的图标。
QIcon::ThemeIcon::DialogError116当打开对话框解释错误条件给用户时使用的图标。
QIcon::ThemeIcon::DialogInformation117当打开对话框向用户提供与请求操作可能相关的信息时使用的图标。
QIcon::ThemeIcon::DialogPassword118当打开对话框请求用户认证凭据时使用的图标。
QIcon::ThemeIcon::DialogQuestion119当打开对话框向用户提出简单问题时使用的图标。
QIcon::ThemeIcon::DialogWarning120当打开对话框警告用户请求操作中可能出现的问题时使用的图标。
QIcon::ThemeIcon::FolderDragAccept121当可接受的对象被拖放到文件夹上时文件夹使用的图标。
QIcon::ThemeIcon::FolderOpen122文件夹内容在同一窗口内显示时使用的图标。
QIcon::ThemeIcon::FolderVisiting123当文件夹内容在其他窗口内显示时使用的图标。
QIcon::ThemeIcon::ImageLoading124当另一个图像正在加载时使用的图标。
QIcon::ThemeIcon::ImageMissing125当无法加载另一个图像时使用的图标。
QIcon::ThemeIcon::MailAttachment126包含附件的消息的图标。
QIcon::ThemeIcon::MailUnread127未读消息的图标。
QIcon::ThemeIcon::MailRead128已读消息的图标。
QIcon::ThemeIcon::MailReplied129已回复消息的图标。
QIcon::ThemeIcon::MediaPlaylistRepeat130媒体播放器的重复模式图标。
QIcon::ThemeIcon::MediaPlaylistShuffle131媒体播放器随机模式图标。
QIcon::ThemeIcon::NetworkOffline132表示设备未连接到网络的图标。
QIcon::ThemeIcon::PrinterPrinting133打印作业正在成功排队到打印机时的图标。
QIcon::ThemeIcon::SecurityHigh134表示已知项目的安全级别很高的图标。
QIcon::ThemeIcon::SecurityLow135表示已知项目的安全级别很低的图标。
QIcon::ThemeIcon::SoftwareUpdateAvailable136表示有可用更新的图标。
QIcon::ThemeIcon::SoftwareUpdateUrgent137表示有紧急更新的图标。
QIcon::ThemeIcon::SyncError138在尝试同步设备间数据时发生错误时使用的图标。
QIcon::ThemeIcon::SyncSynchronizing139在设备间成功同步数据时使用的图标。
QIcon::ThemeIcon::UserAvailable140表示用户可用的图标。
QIcon::ThemeIcon::UserOffline141表示用户不可用的图标。
QIcon::ThemeIcon::WeatherClear142表示天空晴朗的图标。
QIcon::ThemeIcon::WeatherClearNight143表示夜间天空晴朗的图标。
QIcon::ThemeIcon::WeatherFewClouds144表示天空部分多云的图标。
QIcon::ThemeIcon::WeatherFewCloudsNight145表示夜间天空部分多云的图标。
QIcon::ThemeIcon::WeatherFog146表示有雾天气的图标。
QIcon::ThemeIcon::WeatherShowers147表示有阵雨的图标。
QIcon::ThemeIcon::WeatherSnow148表示有雪的图标。
QIcon::ThemeIcon::WeatherStorm149表示有暴风雨天气的图标。

此枚举自 Qt 6.7 引入。

另请参阅QIcon#从主题或图标库中创建图标fromTheme

成员函数文档

[静态,自 6.7 版起] QIcon QIcon::fromTheme(QIcon::ThemeIcon icon)

[静态,自 6.7 版起] QIcon QIcon::fromTheme(QIcon::ThemeIcon icon, const QIcon &fallback)

这是一个重载函数。

返回对应于 iconQIcon,其来自 当前图标主题

如果当前主题不提供 icon 的图标,则查询 后备图标主题,然后再根据 后备图标搜索路径 查找独立的图标文件。最后,参考平台的原生图标库。

如果没有找到图标,并且提供了 fallback,则返回 fallback。这适用于无论当前图标主题和后备路径集是否支持请求的图标都可以提供保证的后备。

如果没有找到图标,并且没有提供 fallback,则返回一个默认构造的、空的 QIcon

此函数自 Qt 6.7 起引入。

[noexcept] QIcon::QIcon()

创建一个空图标。

QIcon::QIcon(const QPixmap &pixmap)

从一个pixmap构造图标。

[显式] QIcon::QIcon(const QString &fileName)

从指定fileName的文件中构造图标。文件将在需要时加载。

如果fileName包含相对路径(例如,仅文件名),则相关文件必须在运行时工作目录中查找。

文件名可以指向磁盘上的实际文件,或者指向应用程序的嵌入式资源之一。有关如何将图像和其他资源文件嵌入到应用程序的可执行文件中的详细信息,请参阅资源系统概述。

使用QImageReader::supportedImageFormats()和QImageWriter::supportedImageFormats()函数来获取支持的完整文件格式列表。

[显式] QIcon::QIcon(QIconEngine *engine)

创建一个具有特定图标engine的图标。图标将接管引擎。

QIcon::QIcon(const QIcon &other)

构造other的副本。这非常快。

[noexcept] QIcon::QIcon(QIcon &&other)

移动构造QIcon实例,使其指向对象与other指向的相同。

[noexcept] QIcon::~QIcon()

销毁图标。

QSize QIcon::actualSize(const QSize &size, QIcon::Mode mode = Normal, QIcon::State state = Off) const

返回请求的sizemodestate的图标的实际大小。结果可能小于请求的大小,但永远不会更大。返回的大小以设备无关像素为单位(这对于高dpi位图很重要)。

另请参见 pixmap() 和 paint()。

void QIcon::addFile(const QString &fileName, const QSize &size = QSize(), QIcon::Mode mode = Normal, QIcon::State state = Off)

将来自指定fileName文件的图像作为对sizemodestate的专门化添加到图标中。文件将在需要时加载。注意:自定的图标引擎可以忽略额外添加的pixmap。

如果fileName包含相对路径(例如,仅文件名),则相关文件必须在运行时工作目录中查找。

文件名可以指向磁盘上的实际文件,或者指向应用程序的嵌入式资源之一。有关如何将图像和其他资源文件嵌入到应用程序的可执行文件中的详细信息,请参阅资源系统概述。

使用QImageReader::supportedImageFormats()和QImageWriter::supportedImageFormats()函数来获取支持的完整文件格式列表。

如果存在图像的高分辨率版本(通过基名上的后缀@2x标识),则它会自动加载并添加,并将device pixel ratio设置为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添加到图标中,针对modestate进行特殊化。

自定义图标引擎可以自由忽略额外添加的像素图。

另请参阅addFile()。

QList<QSize> QIcon::availableSizes(QIcon::Mode mode = Normal, QIcon::State state = Off) const

返回指定modestate的可用图标大小的列表。

qint64 QIcon::cacheKey() const

返回一个标识此QIcon对象内容的数字。不同QIcon对象可以具有相同的关键字,如果它们引用的是相同的内容。

当图标通过addPixmap()或addFile()被修改时,cacheKey()会发生变化。

缓存关键字通常与缓存一起使用。

另请参阅QPixmap::cacheKey()。

[静态] QStringList QIcon::fallbackSearchPaths()

返回图标的备选搜索路径。

如果当前图标主题或备选图标主题在查找图标时没有提供结果,将查询备选搜索路径。

如果未设置,备选搜索路径将由平台定义。

另请参阅setFallbackSearchPaths()和themeSearchPaths()。

[静态] QString QIcon::fallbackThemeName()

返回备选图标主题的名称。

如果未设置,备选图标主题将由平台定义。

注意:平台备选图标主题目前仅实现于基于Freedesktop的系统,图标的主题取决于您的桌面设置。

另请参阅setFallbackThemeName()和themeName()。

[静态] QIcon QIcon::fromTheme(const QString &name)

返回对应于当前图标主题nameQIcon

如果当前主题未提供 name 的图标,则会咨询 备用图标主题,然后再回退到在 备用图标搜索路径 中查找单独的图标文件。最后,会咨询平台的原生图标库。

从当前图标主题获取图标

QIcon undoicon = QIcon::fromTheme(QIcon::ThemeIcon::EditUndo);

如果没有通过 setThemeName() 明确设置 图标主题,则会使用平台定义的图标主题。

另请参阅 themeName(),fallbackThemeName(),setThemeName(),themeSearchPaths(),fallbackSearchPaths() 以及 Freedesktop 图标命名规范

[静态] QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)

这是一个重载函数。

返回对应于当前图标主题nameQIcon

如果当前主题未提供 name 的图标,则会咨询 备用图标主题,然后再回退到在 备用图标搜索路径 中查找单独的图标文件。最后,会咨询平台的原生图标库。

如果没有找到图标,则返回 fallback

这在提供保证的回退非常有用,无论当前图标主题和回退路径是否支持请求的图标。

例如

QIcon undoicon = QIcon::fromTheme(QIcon::ThemeIcon::EditUndo, QIcon(":/undo.png"));

另请参阅 fallbackThemeName() 和 fallbackSearchPaths

[静态] bool QIcon::hasThemeIcon(const QString &name)

如果在当前图标主题或任意回退中(正如 fromTheme 描述的那样)为 name 提供了图标,则返回 true,否则返回 false

另请参阅 themeSearchPathsfromTheme 以及 setThemeName

[静态,自 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

如果图标既没有 pixmap 也没有文件名,则为空图标。

注意:即使是非空图标,也可能无法创建有效的 pixmap,例如文件不存在或无法读取。

QString QIcon::name() const

如果可用,返回用于创建图标的名称。

根据图标创建的方式,它可能有一个关联的名称。对于使用 fromTheme 创建的图标来说,情况就是这样。

另请参阅 fromThemeQIconEngine::iconName

void QIcon::paint(QPainter *painter, const QRect &rect, Qt::Alignment alignment = Qt::AlignCenter, QIcon::Mode mode = Normal, QIcon::State state = Off) const

使用指定的 alignment、必需的 modestate,使用 painter 在矩形 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

返回一个指定 sizemodestate 的 pixmap,如果需要则生成。该 pixmap 可能小于请求的大小,但永远不会更大,除非返回的 pixmap 的设备像素比大于 1。

另请参阅 actualSize() 和 paint()。

QPixmap QIcon::pixmap(int w, int h, QIcon::Mode mode = Normal, QIcon::State state = Off) const

这是一个重载函数。

返回一个大小为 QSize(w, h) 的 pixmap。该 pixmap 可能小于请求的大小,但永远不会更大,除非返回的 pixmap 的设备像素比大于 1。

QPixmap QIcon::pixmap(int extent, QIcon::Mode mode = Normal, QIcon::State state = Off) const

这是一个重载函数。

返回一个大小为 QSize(extent, extent) 的 pixmap。该 pixmap 可能小于请求的大小,但永远不会更大,除非返回的 pixmap 的设备像素比大于 1。

[自6.0版起] QPixmap QIcon::pixmap(const QSize &size, qreal devicePixelRatio, QIcon::Mode mode = Normal, QIcon::State state = Off) const

这是一个重载函数。

返回一个具有所需的大小、设备像素比、模式及状态的小图,如果需要,将生成具有给定模式及状态的图。小图可能小于所需大小,但永远不会大于,除非返回的小图的设备像素比大于1。

此函数自Qt 6.0版开始提供。

另请参阅 actualSize() 和 paint()。

[静态] void QIcon::setFallbackSearchPaths(const QStringList &paths)

将图标备用搜索路径设置为paths

如果当前图标主题或备选图标主题在查找图标时没有提供结果,将查询备选搜索路径。

例如

QIcon::setFallbackSearchPaths(QIcon::fallbackSearchPaths() << "my/search/path");

另请参阅fallbackSearchPaths() 和 setThemeSearchPaths

[静态] void QIcon::setFallbackThemeName(const QString &name)

将备用图标主题设置为name

当当前图标主题没有提供图标,或当前图标主题不存在时,将查询备用图标主题。

name应与setThemeName()中描述的格式相符,并将 themeSearchPaths 中进行查找。

注意:在创建QGuiApplication之前设置备用图标主题,以保证正确初始化。

另请参阅fallbackThemeName(),themeSearchPathsthemeName

void Qaeda::setIsMask(bool isMask)

指示此图是遮罩图像(布尔值 isMask),因此可以根据显示的位置进行更改。

另请参阅isMask

[静态] void Qaeda::setThemeName(const QString &name)

将当前图标主题设置为name

将在themeSearchPaths中进行查找。

目前,唯一支持的图标主题格式是Freedesktop 图标主题规范name应与setThemeName()中描述的格式相符,并且将在themeSearchPaths中进行查找,包含描述其内容的 index.theme 文件。

另请参阅themeSearchPathsthemeNameFreedesktop 图标主题规范

[静态] void Qaeda::setThemeSearchPaths(const QStringList &paths)

将图标主题的搜索路径设置为paths

paths的内容应遵循由setThemeName()文档化的主题格式。

另请参阅 themeSearchPathsfromTheme 以及 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返回。

QIcon &QIcon::operator=(const QIcon &other)

other图标赋给此图标,并返回对此图标的引用。

[noexcept] QIcon &QIcon::operator=(QIcon &&other)

other移动赋值给此QIcon实例。

相关非成员函数

QDataStream &operator<<(QDataStream &stream, const QIcon &icon)

将给定的icon写入给定的stream作为PNG图像。如果图标包含多个图像,所有图像都将写入到流中。请注意,将流写入文件不会产生有效的图像文件。

QDataStream &operator>>(QDataStream &stream, QIcon &icon)

从给定的stream读取图像或一组图像到给定的icon中。

© 2024 Qt公司有限公司。本文件中的文档贡献享有其各自的版权。所述文档在自由软件基金会的<σ href="http://www.gnu.org/licenses/fdl.html">GNU自由文档许可版本1.3下许可发布。Qt及其相关标志是芬兰和/或其他国家的Qt公司 Limited的商标。所有其他商标均属于其各自所有者。