Fluent-Qt

状态与信息

InfoBar 信息栏

在页面中显示提示、成功、警告或错误信息。

示例

信息栏的真实 Gallery 示例

用法

不同级别

setSeverity() 设置级别,图标和背景随之变化;setTitle() 和 setMessage() 设置内容。

#include <FluentQt/StatusInfo.h>
using namespace fluent::status_info;

auto* info = new InfoBar(this);
info->setSeverity(InfoBar::Informational);
info->setTitle("Update available");
info->setMessage("Version 3.2 is ready.");

auto* error = new InfoBar(this);
error->setSeverity(InfoBar::Error);
error->setTitle("Upload failed");
error->setMessage("The document could not be saved.");

keepInfoBarOpenWithToast(info);
keepInfoBarOpenWithToast(error);

fluent::status_info::InfoBar

继承自 QWidget · FluentElement · QMLPlus

带严重级别、操作区和关闭行为的 Fluent 内联通知栏。

构造函数

属性

bool isOpen

弹层、抽屉或通知表面是否处于打开状态。

读取 isOpen()设置 setIsOpen()通知 isOpenChanged()
QString title

界面显示的标题文本。

读取 title()设置 setTitle()通知 titleChanged()
QString message

通知表面显示的消息正文。

读取 message()设置 setMessage()通知 messageChanged()
InfoBarSeverity severity

通知颜色和图标使用的严重级别。

读取 severity()设置 setSeverity()通知 severityChanged()
bool isClosable

关闭入口是否可见且可用。

读取 isClosable()设置 setIsClosable()通知 isClosableChanged()
bool isIconVisible

严重级别图标是否可见。

读取 isIconVisible()设置 setIsIconVisible()通知 isIconVisibleChanged()
bool singleLine

通知是否使用紧凑单行布局。

读取 singleLine()设置 setSingleLine()通知 singleLineChanged()
int preferredWidth

通知布局使用的首选宽度。

读取 preferredWidth()设置 setPreferredWidth()通知 preferredWidthChanged()
int singleLineHeight

单行通知布局使用的高度。

读取 singleLineHeight()设置 setSingleLineHeight()通知 singleLineHeightChanged()
int multiLineMinHeight

多行通知布局使用的最小高度。

读取 multiLineMinHeight()设置 setMultiLineMinHeight()通知 multiLineMinHeightChanged()
int multiLineActionMinHeight

多行布局包含操作区时使用的最小高度。

读取 multiLineActionMinHeight()设置 setMultiLineActionMinHeight()通知 multiLineActionMinHeightChanged()
QWidget* actionWidget

通知承载的可选操作控件。

读取 actionWidget()设置 setActionWidget()通知 actionWidgetChanged()
QMargins contentMargins

控件内容区域周围的边距。

读取 contentMargins()设置 setContentMargins()通知 contentMarginsChanged()
int closeButtonSize

关闭按钮尺寸。

读取 closeButtonSize()设置 setCloseButtonSize()通知 closeButtonSizeChanged()
QString closeButtonAccessibleName

由应用为纯图标关闭按钮提供的无障碍名称。

读取 closeButtonAccessibleName()设置 setCloseButtonAccessibleName()通知 closeButtonAccessibleNameChanged()
int iconTextSpacing

图标与文本内容之间的间距。

读取 iconTextSpacing()设置 setIconTextSpacing()通知 iconTextSpacingChanged()
int titleMessageSpacing

标题与消息文本之间的间距。

读取 titleMessageSpacing()设置 setTitleMessageSpacing()通知 titleMessageSpacingChanged()
int cornerRadius

组件背景使用的圆角半径。

读取 cornerRadius()设置 setCornerRadius()通知 cornerRadiusChanged()
int severityIconSize

严重级别图标背景保留尺寸。

读取 severityIconSize()设置 setSeverityIconSize()通知 severityIconSizeChanged()
int severityIconGlyphSize

严重级别图标字符尺寸。

读取 severityIconGlyphSize()设置 setSeverityIconGlyphSize()通知 severityIconGlyphSizeChanged()
int severityIconBackgroundInset

严重级别图标背景绘制内缩量。

读取 severityIconBackgroundInset()设置 setSeverityIconBackgroundInset()通知 severityIconBackgroundInsetChanged()
Typography::FontRole titleFontRole

标题文本使用的排版角色。

读取 titleFontRole()设置 setTitleFontRole()通知 titleFontRoleChanged()
Typography::FontRole messageFontRole

消息文本使用的排版角色。

读取 messageFontRole()设置 setMessageFontRole()通知 messageFontRoleChanged()
QString informationalIconGlyph

信息级别使用的图标字符。

读取 informationalIconGlyph()设置 setInformationalIconGlyph()通知 informationalIconGlyphChanged()
QString successIconGlyph

成功级别使用的图标字符。

读取 successIconGlyph()设置 setSuccessIconGlyph()通知 successIconGlyphChanged()
QString warningIconGlyph

警告级别使用的图标字符。

读取 warningIconGlyph()设置 setWarningIconGlyph()通知 warningIconGlyphChanged()
QString errorIconGlyph

错误级别使用的图标字符。

读取 errorIconGlyph()设置 setErrorIconGlyph()通知 errorIconGlyphChanged()

方法

bool isOpen() const

弹层、抽屉或通知表面是否处于打开状态。

void setIsOpen(bool open)

弹层、抽屉或通知表面是否处于打开状态。

QString title() const

界面显示的标题文本。

void setTitle(const QString& title)

界面显示的标题文本。

QString message() const

通知表面显示的消息正文。

void setMessage(const QString& message)

通知表面显示的消息正文。

InfoBarSeverity severity() const

通知颜色和图标使用的严重级别。

void setSeverity(InfoBarSeverity severity)

通知颜色和图标使用的严重级别。

bool isClosable() const

关闭入口是否可见且可用。

void setIsClosable(bool closable)

关闭入口是否可见且可用。

bool isIconVisible() const

严重级别图标是否可见。

void setIsIconVisible(bool visible)

严重级别图标是否可见。

bool singleLine() const

通知是否使用紧凑单行布局。

void setSingleLine(bool singleLine)

通知是否使用紧凑单行布局。

int preferredWidth() const

通知布局使用的首选宽度。

void setPreferredWidth(int width)

通知布局使用的首选宽度。

int singleLineHeight() const

单行通知布局使用的高度。

void setSingleLineHeight(int height)

单行通知布局使用的高度。

int multiLineMinHeight() const

多行通知布局使用的最小高度。

void setMultiLineMinHeight(int height)

多行通知布局使用的最小高度。

int multiLineActionMinHeight() const

多行布局包含操作区时使用的最小高度。

void setMultiLineActionMinHeight(int height)

多行布局包含操作区时使用的最小高度。

QWidget* actionWidget() const

通知承载的可选操作控件。

void setActionWidget(QWidget* widget)

通知承载的可选操作控件。

QMargins contentMargins() const

控件内容区域周围的边距。

void setContentMargins(const QMargins& margins)

控件内容区域周围的边距。

int closeButtonSize() const

关闭按钮尺寸。

QString closeButtonAccessibleName() const

由应用为纯图标关闭按钮提供的无障碍名称。

void setCloseButtonAccessibleName(const QString& name)

由应用为纯图标关闭按钮提供的无障碍名称。

int iconTextSpacing() const

图标与文本内容之间的间距。

void setIconTextSpacing(int spacing)

图标与文本内容之间的间距。

int titleMessageSpacing() const

标题与消息文本之间的间距。

void setTitleMessageSpacing(int spacing)

标题与消息文本之间的间距。

int cornerRadius() const

组件背景使用的圆角半径。

void setCornerRadius(int radius)

组件背景使用的圆角半径。

int severityIconSize() const

严重级别图标背景保留尺寸。

void setSeverityIconSize(int size)

严重级别图标背景保留尺寸。

int severityIconGlyphSize() const

严重级别图标字符尺寸。

void setSeverityIconGlyphSize(int size)

严重级别图标字符尺寸。

int severityIconBackgroundInset() const

严重级别图标背景绘制内缩量。

void setSeverityIconBackgroundInset(int inset)

严重级别图标背景绘制内缩量。

Typography::FontRole titleFontRole() const

标题文本使用的排版角色。

void setTitleFontRole(Typography::FontRole role)

标题文本使用的排版角色。

Typography::FontRole messageFontRole() const

消息文本使用的排版角色。

void setMessageFontRole(Typography::FontRole role)

消息文本使用的排版角色。

QString informationalIconGlyph() const

信息级别使用的图标字符。

void setInformationalIconGlyph(const QString& glyph)

信息级别使用的图标字符。

QString successIconGlyph() const

成功级别使用的图标字符。

void setSuccessIconGlyph(const QString& glyph)

成功级别使用的图标字符。

QString warningIconGlyph() const

警告级别使用的图标字符。

void setWarningIconGlyph(const QString& glyph)

警告级别使用的图标字符。

QString errorIconGlyph() const

错误级别使用的图标字符。

void setErrorIconGlyph(const QString& glyph)

错误级别使用的图标字符。

信号

void isOpenChanged(bool open)

弹层、抽屉或通知表面是否处于打开状态。

void titleChanged(const QString& title)

界面显示的标题文本。

void messageChanged(const QString& message)

通知表面显示的消息正文。

void severityChanged(InfoBarSeverity severity)

通知颜色和图标使用的严重级别。

void isClosableChanged(bool closable)

关闭入口是否可见且可用。

void isIconVisibleChanged(bool visible)

严重级别图标是否可见。

void singleLineChanged(bool singleLine)

通知是否使用紧凑单行布局。

void preferredWidthChanged(int width)

通知布局使用的首选宽度。

void singleLineHeightChanged(int height)

单行通知布局使用的高度。

void multiLineMinHeightChanged(int height)

多行通知布局使用的最小高度。

void multiLineActionMinHeightChanged(int height)

多行布局包含操作区时使用的最小高度。

void actionWidgetChanged(QWidget* widget)

通知承载的可选操作控件。

void contentMarginsChanged(const QMargins& margins)

控件内容区域周围的边距。

void closeButtonAccessibleNameChanged(const QString& name)

由应用为纯图标关闭按钮提供的无障碍名称。

void iconTextSpacingChanged(int spacing)

图标与文本内容之间的间距。

void titleMessageSpacingChanged(int spacing)

标题与消息文本之间的间距。

void cornerRadiusChanged(int radius)

组件背景使用的圆角半径。

void severityIconSizeChanged(int size)

严重级别图标背景保留尺寸。

void severityIconGlyphSizeChanged(int size)

严重级别图标字符尺寸。

void severityIconBackgroundInsetChanged(int inset)

严重级别图标背景绘制内缩量。

void titleFontRoleChanged(Typography::FontRole role)

标题文本使用的排版角色。

void messageFontRoleChanged(Typography::FontRole role)

消息文本使用的排版角色。

void successIconGlyphChanged(const QString& glyph)

成功级别使用的图标字符。

void warningIconGlyphChanged(const QString& glyph)

警告级别使用的图标字符。

void errorIconGlyphChanged(const QString& glyph)

错误级别使用的图标字符。

枚举

enum InfoBarSeverity
  • Informational
  • Success
  • Warning
  • Error

析构函数

PySide6 扩展

takeActionWidget()

Release and return the current action as Python-owned content.

子类扩展接口

方法

继承自 fluent::FluentElement

方法

static void setTheme(Theme theme)

更新全局主题,并通知所有活跃的 FluentElement 实例。

static void setThemeDeferred(Theme theme)

以可见元素优先的批次调度主题刷新,避免阻塞当前交互。

static Theme currentTheme()

返回当前生效的全局主题。

static bool themeUsesDarkAppearance(Theme theme)

返回指定主题是否使用暗色底的 chrome 与材质 token。

static void refreshTheme()

在设计 token 变化后重新广播当前主题以触发重绘。

static int themeGeneration()

每次主题变化自增的单调计数器,用于过期判断。

Theme effectiveTheme() const

解析此元素实际使用的主题,会优先读取 QWidget 父链上的局部主题覆盖。

bool effectiveThemeUsesDarkAppearance() const

返回此元素的实际主题是否使用暗色底 chrome。

bool setThemeOverrides(const QJsonObject& overrides)

供组件侧访问的设计 token 接口。

QJsonObject themeOverrides() const

返回当前元素的覆盖配置。

void clearThemeOverrides()

恢复全部 token 跟随全局主题。

const Colors& themeColorsRef() const

对当前色板的零拷贝访问(用于绘制热路径)。

Material::AcrylicToken themeAcrylic() const

材质、阴影和自适应布局 token。

QColor themeBackdrop(bool active) const

给定激活状态下的窗口 chrome 背景色。

virtual void onThemeUpdated()

全局主题变化后调用。

枚举

enum Theme

解析设计 token 时使用的全局视觉主题。

  • Light = 0
  • Dark = 1
  • HighContrast = 2

类型与别名

struct Colors

返回给组件使用的设计 token 快照。

继承自 fluent::QMLPlus

方法

AnchorLayout::Anchors* anchors()

返回 QWidget 宿主的可变锚点配置。

void setState(const QString& name)

应用具名 state;名称为空时恢复默认状态。

void addState(const QMLState& state)

注册或替换一个具名 state 定义。

void evaluateStates()

重新计算条件;按注册顺序选择首个成立的条件。

QMLPlusRuntime* runtime()

返回按需创建、由宿主持有的状态观察对象。

void setAnchors(const AnchorLayout::Anchors& anchors)

替换宿主的全部锚点,并使父布局失效。

void resetAnchors()

清除宿主全部锚点,并使父布局失效。

void addTransition(const StateTransition& transition)

按优先顺序注册状态过渡。

void setBehavior(const char* propertyName, const PropertyAnimation& animation)

设置宿主受管理属性写入时使用的默认动画。

void clearBehavior(const char* propertyName)

移除后续受管理写入使用的默认动画。

bool writeProperty(const char* propertyName, const QVariant& value)

通过 Behavior 写入宿主属性,且不移除该属性的绑定。

Qt 基类完整成员:QWidget