组件API
组件概述
EvolveUI 提供了丰富的 QML 组件,所有组件都遵循统一的命名规范和设计风格。组件命名以 E 为前缀(如 EButton, ECard),便于识别和使用。
组件分类
基础组件
这些是构建用户界面的基本元素,包括按钮、输入框、选择控件等。
- EButton - 带图标和动画效果的圆角按钮
- EAvatar - 头像组件
- EInput - 支持焦点变色与阴影的输入框
- ECheckBox - 动画复选框组件
- ERadioButton - 动画单选按钮组件
- ESwitchButton - 动画开关组件
容器组件
这些组件用于组织和布局其他组件,提供不同的容器效果。
- ECard - 基础卡片容器组件
- EBlurCard - 高斯模糊卡片组件
- EHoverCard - 鼠标悬停浮起卡片容器
- ECardWithTextArea - 带文本区域的卡片容器
- EDrawer - 侧边栏组件
高级组件
这些组件提供更复杂的交互功能和视觉效果。
- EAccordion - 下拉信息栏
- EAnimatedWindow - iPad OS 动画风格窗口
- ECalendar - 日历组件
- ECarousel - 轮播组件
- EDropdown - 下拉选择框组件
- EMenuButton - 菜单按钮组件
- ENavBar - 导航栏组件
- ESlider - 支持滑块动画的调节组件
- EToast - 支持消息提示的组件
数据展示组件
这些组件用于可视化和展示数据。
- EAreaChart - 折线图组件
- EDataTable - 高性能表格组件
- EFitnessProgress - 健身进度展示组件
- EYearProgress - 年度进度展示组件
其他组件
- Aboutme - 带有打字机效果的介绍界面
- EBatteryCard - 电池状态卡片组件
- EClock - 时钟显示组件
- EClockCard - 时钟卡片容器组件
- EHitokotoCard - 一言卡片组件
- ELoader - 加载动画组件
- EMusicPlayer - 音乐播放器组件
- ENextHolidayCountdown - 假期倒计时组件
- ESimpleDatePicker - 简易日期选择组件
- ETimeDisplay - 时间显示组件
- EAlertDialog - 弹窗组件
组件通用属性
虽然每个组件都有自己独特的属性,但许多组件共享一些通用属性:
| 属性名 | 类型 | 描述 |
|---|---|---|
width | real | 组件宽度 |
height | real | 组件高度 |
x | real | 组件 x 坐标 |
y | real | 组件 y 坐标 |
visible | bool | 组件是否可见 |
enabled | bool | 组件是否可用 |
opacity | real | 组件透明度(0-1) |
z | int | 组件堆叠顺序 |
组件样式一致性
所有 EvolveUI 组件都遵循统一的设计规范:
- 圆角半径:默认 8px,重要组件可使用 12px
- 阴影效果:统一的阴影层级,区分组件重要性
- 颜色系统:基于主题的颜色变量,确保一致性
- 动画曲线:统一的缓动函数和动画时长
- 交互反馈:悬停、点击等状态的统一反馈
组件最佳实践
- 组件命名:使用 PascalCase 命名组件,前缀
E表示 EvolveUI 组件 - 属性命名:使用 camelCase 命名属性,清晰表达属性用途
- 事件命名:使用过去式命名事件,如
clicked,hovered - 组件复用:将通用逻辑封装到自定义组件中,提高复用性
- 性能优化:避免过度使用复杂动画,合理使用
opacity和visible属性
组件开发规范
如果您想为 EvolveUI 贡献组件,请遵循以下规范:
- 文件结构:每个组件一个独立的 QML 文件
- 文档注释:为组件、属性、方法添加详细的文档注释
- 测试用例:提供完整的组件测试用例
- 示例代码:提供多种使用场景的示例代码
- 兼容性:确保组件兼容 Qt 6.5 及以上版本
组件版本控制
每个组件都有自己的版本信息,您可以通过组件的 version 属性访问:
qml
Components.EButton {
Component.onCompleted: {
console.log("EButton 版本:", version)
}
}组件更新日志
v1.0.0 (2025-12-01)
- 初始版本发布
- 包含 30+ 核心组件
- 支持浅色/深色主题切换
- 响应式布局优化