You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Taipy的Status控件多状态设置不同显示颜色?

Taipy Status控件多状态自定义颜色方案

核心结论

不需要给FT1、FT2、FT3设置独立ID,通过CSS属性选择器即可针对不同状态值设置专属颜色。

具体实现步骤

1. 编写自定义CSS样式

利用Taipy生成的DOM结构,Status控件的每个状态选项会携带data-value属性(对应lov中的键),通过ID+属性选择器精准定位:

/* Recording状态(FT1)- 蓝色 */
#statuslog [data-value="FT1"] {
    background-color: #1E90FF;
    color: #ffffff;
}

/* Recorded状态(FT2)- 绿色 */
#statuslog [data-value="FT2"] {
    background-color: #2ECC71;
    color: #ffffff;
}

/* Failed状态(FT3)- 红色 */
#statuslog [data-value="FT3"] {
    background-color: #E74C3C;
    color: #ffffff;
}

2. 关联CSS文件到Taipy应用

在初始化Gui实例时指定CSS文件路径,确保样式生效:

from taipy import Gui

# 原有变量定义
value_tgg = [('TG1', 'Choice 1'), ('TG2', 'Choice 2'), ('TG3', 'Choice 3')]
value_tgg_choice = value_tgg[0]
val_status1 = [('FT1', 'Recording'), ('FT2', 'Recorded'), ('FT3', 'Failed')]
val_status_choice1 = val_status1[0]

page1_md = """
## TESTE

<|{val_status_choice1}|status|lov={val_status1}|id=statuslog|>

<|{value_tgg_choice}|toggle|lov={value_tgg}|on_change={on_value_tgg}|>
"""

def on_value_tgg(state, id, action):
    print(state.value_tgg_choice)
    match state.value_tgg_choice[1]:
        case 'Choice 1':
            state.val_status_choice1 = state.val_status1[1]
            print('1')
        case 'Choice 2':
            state.val_status_choice1 = state.val_status1[2]
            print('2')
        case 'Choice 3':
            state.val_status_choice1 = state.val_status1[0]
            print('3')

# 加载CSS文件并启动应用
Gui(page=page1_md, css_file="custom_status.css").run()

原理说明

Taipy渲染Status控件时,会为每个状态选项生成带有data-value属性的DOM节点,属性值对应lov元组的第一个元素(FT1/FT2/FT3)。通过#statuslog [data-value="XXX"]的选择器,可以精准匹配对应状态的元素,实现不同状态的颜色定制。

内容的提问来源于stack exchange,提问作者Jaime Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:08:24