QtShadcn
组件

ShadcnStatusDot

语义色状态圆点:Online / Away / Busy / Offline / Success / Warning / Danger。

纯视觉语义色圆点。用户在线状态、服务健康状态、任务执行进度通用;常与 ShadcnAvatar 的 status 属性组合使用。

用法

import QtShadcn

// 独立使用
ShadcnStatusDot {
    status: ShadcnStatusDot.Status.Online
    size: 8
}

// 叠在彩色背景(Avatar / Card 底)上 → border=true 开描边
ShadcnStatusDot {
    status: ShadcnStatusDot.Status.Success
    size: 12
    border: true   // 1px theme.card 色描边,让圆点边缘清晰
}

// 行内列表项:左侧指示点 + 文本
Row {
    spacing: theme.spacingSm
    ShadcnStatusDot { status: ShadcnStatusDot.Status.Online; anchors.verticalCenter: parent.verticalCenter }
    Text { text: "alice@qt.io"; color: theme.foreground; anchors.verticalCenter: parent.verticalCenter }
}

属性

属性类型说明
statusenum见下表 Status 枚举,默认 Offline
sizeint圆点直径像素,默认 8
borderbool是否加 1px theme.card 色描边,默认 false(叠在彩色背景上时建议开启)

status = None 时组件自动 visible = false,不占布局空间。

Status 枚举 → 颜色映射

Status颜色语义
Online#22c55e(绿)用户在线
Success#22c55e(绿)操作成功 / 服务健康
Away#f59e0b(黄)离开
Busy#f59e0b(黄)忙碌 / 请勿打扰
Warning#f59e0b(黄)警告 / 降级
Danger#ef4444(红)错误 / 故障
Offlinetheme.mutedForeground离线(随主题明暗自动适配)
None透明,隐藏无状态

颜色直接写死 Tailwind 语义十六进制值(明暗对比度均 ≥ WCAG AA);将来 QtShadcnTheme 补 success/warning/danger 语义 token 时内部替换即可,API 不变。

组合

与 Avatar 联动

ShadcnAvatar 已内置 StatusDot 叠加层,直接设 status 即可,无需手动布局:

ShadcnAvatar {
    text: "Ryan"
    status: ShadcnStatusDot.Status.Online   // 右下角自动出现绿点
    size: ShadcnAvatar.Size.Large
}

相关

  • ShadcnAvatar — 头像组件(status 属性已封装 StatusDot 叠加)
  • ShadcnBadge — 胶囊形文字徽标(6 variant)
Copyright © 2026