StatusWidget 状态组件¶
📊 状态展示组件
系统状态
CPU使用率
68%
内存使用
4.2GB / 8GB
磁盘空间
256GB / 512GB
网络状态
断开连接
状态展示
实时更新
状态分类
StatusWidget是一个专门用于显示系统状态、配置信息或键值对数据的组件。它支持多种状态类型的颜色标识,提供灵活的布局选项,是监控面板和状态报告的理想选择。
🎯 主要功能¶
状态项管理¶
- 动态添加:支持动态添加状态项
- 状态更新:实时更新状态值和类型
- 状态移除:支持移除指定状态项
- 状态分类:支持SUCCESS、WARNING、ERROR、INFO等状态类型
布局控制¶
- 垂直布局:标签和值垂直排列(默认)
- 水平布局:标签和值水平对齐
- 自定义样式:支持自定义颜色和字体
数据展示¶
- 键值对显示:清晰的标签-值对展示
- 状态着色:根据状态类型自动着色
- 标题支持:可选的组件标题
📋 核心方法¶
基础使用¶
Python
from email_widget.widgets import StatusWidget
from email_widget.core.enums import StatusType, LayoutType
# 创建状态组件
status = StatusWidget()
# 添加状态项
status.add_status_item("服务状态", "运行中", StatusType.SUCCESS)
status.add_status_item("CPU使用率", "68%", StatusType.WARNING)
status.add_status_item("内存使用", "4.2GB / 8GB", StatusType.INFO)
状态管理方法¶
Python
# 添加状态项
status.add_status_item(label, value, status_type)
# 更新状态项
status.update_item("服务状态", "已停止", StatusType.ERROR)
# 移除状态项
status.remove_item("CPU使用率")
# 清空所有状态项
status.clear_items()
# 获取状态项数量
count = status.get_item_count()
布局和样式¶
Python
# 设置标题
status.set_title("系统状态监控")
# 设置布局(水平/垂直)
status.set_layout(LayoutType.HORIZONTAL) # 水平布局
status.set_layout(LayoutType.VERTICAL) # 垂直布局(默认)
💡 实用示例¶
系统监控面板¶
Python
from email_widget.widgets import StatusWidget
from email_widget.core.enums import StatusType, LayoutType
# 创建系统监控状态
monitor = StatusWidget()
monitor.set_title("系统监控面板")
monitor.set_layout(LayoutType.HORIZONTAL)
# 添加系统状态
monitor.add_status_item("CPU使用率", "68%", StatusType.WARNING)
monitor.add_status_item("内存使用", "4.2GB / 8GB", StatusType.INFO)
monitor.add_status_item("磁盘空间", "256GB / 512GB", StatusType.SUCCESS)
monitor.add_status_item("网络状态", "断开连接", StatusType.ERROR)
# 渲染组件
html = monitor.render_html()
服务状态报告¶
Python
# 创建服务状态报告
service_status = StatusWidget()
service_status.set_title("服务状态报告")
# 添加服务状态
service_status.add_status_item("Web服务", "运行中", StatusType.SUCCESS)
service_status.add_status_item("数据库", "连接正常", StatusType.SUCCESS)
service_status.add_status_item("缓存服务", "部分故障", StatusType.WARNING)
service_status.add_status_item("文件服务", "离线", StatusType.ERROR)
# 更新状态
service_status.update_item("缓存服务", "已恢复", StatusType.SUCCESS)
配置信息展示¶
Python
# 创建配置信息展示
config_info = StatusWidget()
config_info.set_title("应用配置")
config_info.set_layout(LayoutType.VERTICAL)
# 添加配置项
config_info.add_status_item("应用版本", "v2.1.0", StatusType.INFO)
config_info.add_status_item("环境", "生产环境", StatusType.PRIMARY)
config_info.add_status_item("数据库版本", "MySQL 8.0", StatusType.INFO)
config_info.add_status_item("最后更新", "2024-01-15", StatusType.INFO)
动态状态更新¶
Python
# 创建动态状态监控
dynamic_status = StatusWidget()
dynamic_status.set_title("实时状态")
# 初始状态
dynamic_status.add_status_item("连接状态", "连接中...", StatusType.INFO)
dynamic_status.add_status_item("数据同步", "等待中", StatusType.WARNING)
# 模拟状态更新
def update_status():
# 更新连接状态
dynamic_status.update_item("连接状态", "已连接", StatusType.SUCCESS)
# 更新同步状态
dynamic_status.update_item("数据同步", "同步完成", StatusType.SUCCESS)
# 添加新状态
dynamic_status.add_status_item("最后同步", "刚刚", StatusType.INFO)
📊 状态类型详解¶
状态类型说明¶
状态类型 | 颜色 | 适用场景 |
---|---|---|
SUCCESS |
绿色 | 成功状态、正常运行 |
WARNING |
橙色 | 警告状态、需要关注 |
ERROR |
红色 | 错误状态、需要处理 |
INFO |
蓝色 | 信息状态、一般信息 |
PRIMARY |
蓝色 | 主要信息、重要配置 |
状态使用建议¶
Python
# 服务状态
StatusType.SUCCESS # 服务正常运行
StatusType.WARNING # 服务有警告但仍可用
StatusType.ERROR # 服务故障或不可用
# 资源使用
StatusType.SUCCESS # 资源使用正常(< 70%)
StatusType.WARNING # 资源使用较高(70-90%)
StatusType.ERROR # 资源使用过高(> 90%)
# 配置信息
StatusType.INFO # 一般配置信息
StatusType.PRIMARY # 重要配置信息
📐 布局选择指南¶
水平布局(HORIZONTAL)¶
- 适用场景:状态项较多,需要紧凑显示
- 特点:标签和值在同一行,左右对齐
- 推荐用途:监控面板、状态表格
垂直布局(VERTICAL)¶
- 适用场景:状态项较少,需要清晰展示
- 特点:标签和值分行显示
- 推荐用途:配置信息、详细状态
🎨 最佳实践¶
1. 状态分类管理¶
Python
# 按类别组织状态
system_status = StatusWidget()
system_status.set_title("系统状态")
# 核心服务状态
system_status.add_status_item("Web服务", "运行中", StatusType.SUCCESS)
system_status.add_status_item("API服务", "运行中", StatusType.SUCCESS)
# 资源状态
system_status.add_status_item("CPU", "68%", StatusType.WARNING)
system_status.add_status_item("内存", "4.2GB", StatusType.INFO)
2. 状态更新策略¶
Python
# 批量更新状态
def update_system_status(status_widget, metrics):
for metric_name, value, status_type in metrics:
status_widget.update_item(metric_name, value, status_type)
3. 状态阈值管理¶
Python
# 根据阈值设置状态类型
def get_cpu_status(usage):
if usage < 70:
return StatusType.SUCCESS
elif usage < 90:
return StatusType.WARNING
else:
return StatusType.ERROR
cpu_usage = 68
status.add_status_item("CPU使用率", f"{cpu_usage}%", get_cpu_status(cpu_usage))
4. 组合使用¶
Python
# 多个状态组件组合
from email_widget.widgets import ColumnWidget
# 创建多列状态展示
column = ColumnWidget().set_columns(2)
# 系统状态
system_status = StatusWidget()
system_status.set_title("系统状态")
system_status.add_status_item("服务", "运行中", StatusType.SUCCESS)
# 性能状态
performance_status = StatusWidget()
performance_status.set_title("性能指标")
performance_status.add_status_item("响应时间", "120ms", StatusType.INFO)
# 组合显示
column.add_widgets([system_status, performance_status])
🔧 常见问题¶
Q: 如何实现状态的自动更新?¶
A: 通过定期调用 update_item()
方法来更新状态值和类型。
Q: 状态项过多时如何优化显示?¶
A: 使用水平布局(LayoutType.HORIZONTAL
)或考虑分组显示。
Q: 如何自定义状态颜色?¶
A: 目前支持预定义的状态类型,如需自定义颜色可以通过CSS样式覆盖。
Q: 状态项的显示顺序如何控制?¶
A: 状态项按添加顺序显示,可以通过 clear_items()
后重新添加来调整顺序。
StatusWidget为您提供了灵活而强大的状态展示功能,无论是系统监控、服务状态还是配置信息展示,都能轻松胜任!