QtShadcn
组件

ShadcnAvatar

圆形头像:图片 / 图标 / 首字母三选一,5 档尺寸,右下角可叠加 StatusDot。

圆形头像组件,内容按优先级 图片 → 图标 → 首字母 渲染;右下角可叠加 ShadcnStatusDot 做在线状态指示。

用法

import QtShadcn

// 首字母头像 + 在线状态
ShadcnAvatar {
    size: ShadcnAvatar.Size.Medium
    text: "Ryan"
    status: ShadcnStatusDot.Status.Online
}

// 图标头像
ShadcnAvatar { iconName: "user" }

// 图片头像
ShadcnAvatar {
    source: "file:/path/to/photo.png"
    size: ShadcnAvatar.Size.XLarge
}

// 自定义底色 + 文字色
ShadcnAvatar {
    text: "李"
    bgColor: theme.secondary
    textColor: theme.secondaryForeground
}

属性

属性类型说明
sizeenumXSmall(24) / Small(32) / Medium(44, 默认) / Large(56) / XLarge(72)
sourceurl图片源,PreserveAspectCrop + Retina 2× 采样
iconNamestring无图片时显示图标(lucide 命名,见 ShadcnIcon)
textstring无图也无图标时取 首字母大写 渲染
bgColorcolor底色(默认 theme.primary)
textColorcolor首字母文字色(默认 theme.primaryForeground)
iconColorcolor图标色(默认 theme.primaryForeground)
statusenum右下角 ShadcnStatusDot 状态,默认 None(不显示)

尺寸

Size直径适用场景
XSmall24px列表行内、表格单元格
Small32px紧凑卡片 / 评论区
Medium44px导航栏用户头像 / 默认
Large56px个人信息卡片
XLarge72px个人主页大头像

组合

Avatar Group(堆叠头像)

外层 Row 设置 spacing: -12,每个头像右侧加 1px theme.card 色遮挡条即可产生 shadcn 风格堆叠效果:

Row {
    spacing: -12
    ShadcnAvatar { size: ShadcnAvatar.Size.Medium; text: "A"; bgColor: "#2563eb" }
    ShadcnAvatar { size: ShadcnAvatar.Size.Medium; text: "B"; bgColor: "#0ea5e9" }
    ShadcnAvatar { size: ShadcnAvatar.Size.Medium; text: "C"; bgColor: "#16a34a" }
    ShadcnAvatar { size: ShadcnAvatar.Size.Medium; text: "+5"; bgColor: theme.muted; textColor: theme.mutedForeground }
}

相关

  • ShadcnStatusDot — 语义色状态圆点(Avatar 的 status 属性底层组件)
  • ShadcnCard — 卡片容器,头像常作为 Header 左侧信息
Copyright © 2026