这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 【STM32H745】TouchGFX动态修改buttonwithlabel的标

共1条 1/1 1 跳转至

【STM32H745】TouchGFX动态修改buttonwithlabel的标签文字

高工
2025-10-25 20:35:07     打赏

在TouchGFX中,经常使用同一个按键来进行往复开关,就如自锁开关一样,当前一个功能,按下修改标签文字,当再次按下时执行不同的功能,同时又将标签设回原来的文本。

如下图所示,我需要将安装开始采集这个按键,按下去时修改文本为“停止采集”

image.png

【代码实现】

1、标签文字的实现,需要在TouchGFX的Texts下面进行ID设定,我们打开Texts下面有Id这一栏。

image.png

我们需要将开始采集这个的Id修改为START,停止采集的Id设置为STOP

在按键的触发函数中,我们添加代码如下:

void Screen1View::funstart()
{
    // Override and implement this function in Screen1
    // 获取bntRun的标签文本
    touchgfx::TypedText btnRunText = butStrat.getLabelText();

    // 判断按钮文本是否为"START"
    if (touchgfx::Unicode::strncmp(btnRunText.getText(), TypedText(T_START).getText(), 8) == 0)
    {
        // 改变按钮文本为"STOP"
			  runFlage = 1;
//			  MKS_RUN(0x8a);
			  butStrat.setLabelText(touchgfx::TypedText(T_STOP));
			  butStrat.invalidate();
    }
		else if (touchgfx::Unicode::strncmp(btnRunText.getText(), TypedText(T_STOP).getText(), 8) == 0)
		{
			// 改变按钮文本为"START"
				runFlage = 0;
//				MKS_RUN(0x88);
				butStrat.setLabelText(touchgfx::TypedText(T_START));
				butStrat.invalidate();
		}
}

这里需要注意的是TypedText传入的参数需要在前面添加一个T_才能正确的识别,同时别忘了添加头文件:

#include <touchgfx/TypedText.hpp>  // 确保包含头文件
#include <touchgfx/Unicode.hpp>    // 用于Unicode操作
#include <texts/TextKeysAndLanguages.hpp>
#include <touchgfx/Color.hpp>

通过这样就可以成功的动态修改button with label的文字了:

image.png




关键词: STM32H745     TouchGFX     button    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]