VisualHMI - 文字颜色控制(定制)

1.概述

VisualHMI 提供全局文字颜色批量设置接口,允许开发者通过统一接口动态修改界面控件的文字前景色,而无需逐个配置或维护多套独立界面。该功能特别适用于需根据环境光、运行模式或用户偏好动态调整视觉风格的场景(如白天/夜间模式切换),显著提升工程开发效率与系统可维护性。

✅ 核心功能如下:

  • 一键式主题切换: 通过调用单一指令或绑定一个控制变量,即可同步更新画面中所有文本类控件的文字颜色,实现“亮色模式 ↔ 暗色模式”的即时切换。
  • 背景与文字协同适配: 可配合背景图片或背景色的动态更换(如白天使用浅色背景 + 深色文字,夜间使用深色背景 + 浅色文字),确保高对比度与视觉舒适性,符合人因工程与工业可用性标准。

适用范围:VisualHMI - HMI&M系列&Dx系列(定制固件)

下载链接:VisualHMI - 批量设置文字颜色(点击下载)

支持批量设置的控件如下所示

为使用 控件分组管理(如批量设置文字颜色、统一属性控制等高级功能),需按以下两步完成系统级与控件级的配置:

1. 1.全局启用控件分组功能

在工程配置中开启分组支持:

路径工程属性 → 控件分组 → 启用 作用:激活 HMI 运行时对控件分组机制的支持。若未启用,所有控件将忽略分组相关属性,即使已配置分组 ID 亦无效。

1. 2. 为控件分配有效分组标识

对需纳入分组管理的每个控件,必须显式指定其 控件 ID

配置项:控件属性面板 → 控件ID 要求控件ID ≠ 0(0 为默认无效值,表示“未分组”)

image-20260122155328054

2. API说明

2.1 on_wgt_text_color(screen,control)

控件文字颜色动态回调函数,on_wgt_text_color(screen, control) 是 HMI 系统提供的控件文字颜色动态设置接口,用于根据特定条件批量设置控件的文字颜色。

📊 参数说明

参数名 类型 说明
screen number 当前画面 ID: 用于区分多页面中的同名控件
control number 目标控件 ID: •仅当 control ≠ 0 时触发回调

📊 返回值说明

返回值 类型 说明
color number RGB565 格式的 16 位颜色值

3. 应用

为验证 控件分组颜色管理功能 的实际效果,本画面按如下规范进行控件布局与属性配置:

3.1. 核心状态指示器

  • 在画面中添加一个 多状态指示灯控件,用于设置颜色切换。

image-20260122155034838

3.2. 颜色可调控件集合

添加以下支持前景色/文字色动态修改的控件,并统一设置画面ID为5,包括但不限于:

  • 静态文本
  • 位状态指示灯
  • 多状态指示灯
  • 位设置按钮
  • 字设置按钮
  • 功能按钮
  • 下拉选择框
  • 滚轮选择器
  • RTC

上述控件均具备 可编程文字颜色或前景色属性,是颜色主题切换的主要作用对象。

3.3. Lua 编辑

on_wgt_text_color(screen, control) 回调函数中,通过判断当前画面 IDscreen)与控件 IDcontrol),读取寄存器 LW3000 的值,并将其作为 RGB565 颜色值赋给 color 变量后返回,从而实现对指定分组控件文字颜色的动态控制。

function on_wgt_text_color(screen,control)

    local color = 0x001f
    if screen == 0 
    then
        if control == 5
        then
            local val = get_uint16(VT_LW, 0x3000)

            if val == 0
            then
                color = 0x00FF

            elseif val == 1
            then
                color = 0x0562

            elseif val == 2
            then
                color = 0x0429

            elseif val == 3
            then
                color = 0x0177

            elseif val == 4
            then
                color = 0xF800
            end
        end
    end

    print('on_wgt_text_color('..screen..','..control..','..(string.format('%04X', color))..')')
    return color
end

4. 运行预览

运行虚拟屏后,点击颜色切换控件,即可实时观察到所有 控件 ID 为 5 的支持文字着色的 UI 元素(如文本、按钮、指示灯等)同步完成文字颜色的批量更新,如下所示:

Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2026-02-05 15:40:17

results matching ""

    No results matching ""