Skip to content

ElaAcrylicUrlCard 组件文档 ​

概述 ​

ElaAcrylicUrlCard 是一个基于 Qt 的亚克力效果 URL 卡片组件,继承自 QPushButton。它提供了一个带有图片、标题、副标题的交互式卡片,支持点击跳转到指定 URL。

特性 ​

  • 亚克力磨砂玻璃效果背景
  • 可自定义图片及其显示模式
  • 支持标题和副标题文本
  • 支持 URL 跳转
  • 支持明暗主题切换
  • 鼠标悬停效果
  • 右下角带有跳转图标

属性 ​

基础属性 ​

BorderRadius ​

  • 类型: int
  • 默认值: 5
  • 说明: 卡片边框圆角半径

MainOpacity ​

  • 类型: qreal
  • 默认值: 0.95
  • 说明: 主体背景透明度

NoiseOpacity ​

  • 类型: qreal
  • 默认值: 0.06
  • 说明: 噪点效果透明度

BrushAlpha ​

  • 类型: int
  • 默认值: 245
  • 说明: 画刷透明度

文本相关属性 ​

Title ​

  • 类型: QString
  • 说明: 卡片标题文本

SubTitle ​

  • 类型: QString
  • 说明: 卡片副标题文本

TitlePixelSize ​

  • 类型: int
  • 默认值: 15
  • 说明: 标题文字大小

SubTitlePixelSize ​

  • 类型: int
  • 默认值: 12
  • 说明: 副标题文字大小

TitleSpacing ​

  • 类型: int
  • 默认值: 10
  • 说明: 标题间距

SubTitleSpacing ​

  • 类型: int
  • 默认值: 10
  • 说明: 副标题间距

图片相关属性 ​

CardPixmap ​

  • 类型: QPixmap
  • 说明: 卡片显示的图片

CardPixmapSize ​

  • 类型: QSize
  • 默认值: QSize(54, 54)
  • 说明: 图片显示大小

CardPixmapBorderRadius ​

  • 类型: int
  • 默认值: 6
  • 说明: 图片边框圆角半径

CardPixMode ​

  • 类型: ElaCardPixType::PixMode
  • 默认值: ElaCardPixType::PixMode::Ellipse
  • 说明: 图片显示模式
  • 可选值:
    • Ellipse: 圆形
    • Default: 默认矩形
    • RoundedRect: 圆角矩形

URL 相关属性 ​

Url ​

  • 类型: QString
  • 说明: 点击卡片跳转的 URL

方法 ​

setCardPixmapSize ​

设置卡片图片大小。

cpp
void setCardPixmapSize(int width, int height);

使用示例 ​

基础用法 ​

cpp
// 创建卡片
ElaAcrylicUrlCard* urlCard = new ElaAcrylicUrlCard(this);

// 设置基本属性
urlCard->setFixedSize(195, 225);
urlCard->setCardPixmapSize(QSize(62, 62));

// 设置内容
urlCard->setTitle("GitHub");
urlCard->setSubTitle("Visit our GitHub repository");
urlCard->setUrl("https://github.com/example/repo");
urlCard->setCardPixmap(QPixmap(":/images/github.png"));

自定义样式 ​

cpp
ElaAcrylicUrlCard* urlCard = new ElaAcrylicUrlCard(this);

// 自定义外观
urlCard->setBorderRadius(10);
urlCard->setMainOpacity(0.9);
urlCard->setNoiseOpacity(0.08);

// 自定义文字样式
urlCard->setTitlePixelSize(17);
urlCard->setTitleSpacing(25);
urlCard->setSubTitleSpacing(13);

// 自定义图片样式
urlCard->setCardPixmapBorderRadius(8);
urlCard->setCardPixMode(ElaCardPixType::PixMode::RoundedRect);

添加工具提示 ​

cpp
ElaAcrylicUrlCard* urlCard = new ElaAcrylicUrlCard(this);
// ... 设置其他属性 ...

// 添加工具提示
ElaToolTip* toolTip = new ElaToolTip(urlCard);
toolTip->setToolTip("点击访问网站");

注意事项 ​

  1. 组件默认大小为 180x200,可通过 setFixedSize 调整
  2. 图片默认以圆形方式显示,可通过 CardPixMode 更改显示方式
  3. 点击卡片会自动使用默认浏览器打开设置的 URL
  4. 组件会自动适应明暗主题切换
  5. 鼠标悬停时会显示边框高亮效果
  6. 右下角会自动显示一个跳转图标

相关组件 ​

  • ElaToolTip: 可配合使用添加工具提示
  • ElaTheme: 主题管理器,控制明暗主题