基础能力
图标
显示内置 Fluent 图标或应用自定义字体中的字形。
使用图标名称
使用 Typography::Icons(C++)或 fluentqt.Icons(Python)中的名称,不要直接写 "\uE713" 这样的编码。FontIcon 和 Button 都可以直接使用这些名称。
#include <FluentQt/BasicInput.h>
#include <FluentQt/Foundation.h>
auto* icon = new fluent::FontIcon(Typography::Icons::Settings, this);
icon->setIconSize(Typography::IconSize::Standard);
auto* btn = new fluent::basicinput::Button("Settings", this);
btn->setIconGlyph(Typography::Icons::Settings);import fluentqt
icon = fluentqt.FontIcon(fluentqt.Icons.Settings)
icon.setIconSize(fluentqt.IconSize.Standard)
btn = fluentqt.Button("Settings")
btn.setIconGlyph(fluentqt.Icons.Settings)使用自定义图标字体
用 QFontDatabase 注册自己的 TTF/OTF,检查返回的字体 ID 和字体族列表,再调用 FontIcon.setFontFamily()。传入自定义字体的真实 Unicode 字形(支持辅助平面码点),不要传入 Fluent 目录名称。自定义字体直接使用 iconSize,不执行 Fluent 光学尺寸替换;颜色、禁用状态和旋转仍然生效。清空字体族可恢复内置图标。字体和许可证由应用管理;QWidget.setFont() 不用于选择图标字体。
#include <FluentQt/Foundation.h>
#include <QFontDatabase>
const int id = QFontDatabase::addApplicationFont(
QStringLiteral(":/icons/application.ttf"));
const QStringList families = QFontDatabase::applicationFontFamilies(id);
if (id >= 0 && !families.isEmpty()) {
// Replace this codepoint with one defined by your font.
auto* icon = new fluent::FontIcon(QStringLiteral("\uE064"), this);
icon->setFontFamily(families.first());
icon->setIconSize(20);
icon->setAccessibleName(QStringLiteral("Application icon"));
}import fluentqt
from PySide6.QtGui import QFontDatabase
font_id = QFontDatabase.addApplicationFont(":/icons/application.ttf")
families = QFontDatabase.applicationFontFamilies(font_id)
if font_id >= 0 and families:
# Replace this codepoint with one defined by your font.
icon = fluentqt.FontIcon(chr(0xE064))
icon.setFontFamily(families[0])
icon.setIconSize(20)
icon.setAccessibleName("Application icon")尺寸与无障碍名称
Typography::IconSize 列出了图标字体的设计尺寸:大多数控件用 Standard(16px),折叠箭头等小指示用 Compact(12px),标题区可用 Large(20px)或 XLarge(24px)。只有图标的按钮要调用 setAccessibleName(),让读屏软件能读出它的作用。