Fluent-Qt

基础能力

图标

显示内置 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);

使用自定义图标字体

用 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"));
}

尺寸与无障碍名称

Typography::IconSize 列出了图标字体的设计尺寸:大多数控件用 Standard(16px),折叠箭头等小指示用 Compact(12px),标题区可用 Large(20px)或 XLarge(24px)。只有图标的按钮要调用 setAccessibleName(),让读屏软件能读出它的作用。

API 参考