硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1588|回复: 11
收起左侧

[ThreadX全家桶] 咨询guix中浮点数设置

[复制链接]

64

主题

189

回帖

381

积分

高级会员

积分
381
发表于 2022-9-15 13:32:30 | 显示全部楼层 |阅读模式
请教文本框中浮点数是如何设置更新的?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-9-15 14:26:30 | 显示全部楼层
这个如何理解,是sprintf转换的意思吗
回复

使用道具 举报

64

主题

189

回帖

381

积分

高级会员

积分
381
 楼主| 发表于 2022-9-15 14:31:01 | 显示全部楼层
图片.png
文本内容需要是个浮点数字,怎么设置更新?



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-9-16 10:15:05 | 显示全部楼层
gck 发表于 2022-9-15 14:31
文本内容需要是个浮点数字,怎么设置更新?

sprintf转换下,然后调用控件API显示文本就行,你测试不行?
回复

使用道具 举报

64

主题

189

回帖

381

积分

高级会员

积分
381
 楼主| 发表于 2022-9-16 10:46:34 | 显示全部楼层
eric2013 发表于 2022-9-16 10:15
sprintf转换下,然后调用控件API显示文本就行,你测试不行?

sprintf(string_buffer,"%f",5.6);
string.gx_string_length = 3;
gx_prompt_text_set_ext(&my_combine.my_combine_blood_fat, &string);
上述不可,是不是用的不对?

更换为下面这样
gx_utility_ltoa(rand() % 10, string_buffer, 4);
string_buffer[1] = '.';
gx_utility_ltoa(rand() % 10, string_buffer + 2, 2);
string.gx_string_length = 3;
gx_prompt_text_set_ext(&my_combine.my_combine_blood_fat, &string);
  
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-9-16 13:18:37 | 显示全部楼层
[C] 纯文本查看 复制代码
/* Define my numeric format function. */
VOID my_format_function(GX_NUMERIC_PROMPT *prompt, INT value)
{
    /* If the value is “1234”, the new format will be “12.34”. */

    INT length;
    gx_utility_ltoa(value / 100, prompt->gx_numeric_prompt_buffer,
        GX_NUMERIC_PROMPT_ BUFFER_SIZE);
    Length = GX_STRLEN(prompt->gx_numeric_prompt_buffer);
    prompt->gx_numeric_prompt_buffer[length++] = ‘.’;
    gx_utility_ltoa(value % 100,
        prompt->gx_numeric_prompt_buffer + length,
        GX_NUMERIC_PROMPT_BUFFER_SIZE - length);
}

/* Override the default format function of “my_numeric_prompt”. */
status = gx_numeric_prompt_format_function_set(&my_numeric_prompt,
    my_format_function);

/* If status is GX_SUCCESS, the format function of “my_numeric_prompt” has been override. */
回复

使用道具 举报

64

主题

189

回帖

381

积分

高级会员

积分
381
 楼主| 发表于 2022-9-16 14:29:21 | 显示全部楼层
本帖最后由 gck 于 2022-9-16 16:07 编辑
morning_enr6U 发表于 2022-9-16 13:18
[mw_shl_code=c,true]/* Define my numeric format function. */
VOID my_format_function(GX_NUMERIC_PRO ...

图片.png
创建了新的文本控件,设置函数如上述所示,
在页面的回调函数——显示类型中调用函数
gx_numeric_prompt_format_function_set(&my_combine.my_combine_prompt_7,my_format_function);

怎么没有改变,
图片.png




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2022-9-17 01:12:26 | 显示全部楼层
GUIX Studio使能prompt文本控件动态更新需要置位标志GX_STYLE_TEXT_COPY
https://forum.anfulai.cn/forum.p ... 0319&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-9-17 10:11:52 | 显示全部楼层
[C] 纯文本查看 复制代码
VOID my_format_func(GX_NUMERIC_PROMPT *prompt, INT value)
{
    /* If the value is “1234”, the new format will be “12.34”. */
    INT length;
    
    gx_utility_ltoa(value / 100,    prompt->gx_numeric_prompt_buffer,    6);
    length = GX_STRLEN(prompt->gx_numeric_prompt_buffer);
    prompt->gx_numeric_prompt_buffer[length++] = '.';
    gx_utility_ltoa(value % 100,    prompt->gx_numeric_prompt_buffer + length,    6 - length);
}
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-9-17 10:13:53 | 显示全部楼层
我这里试过了,没问题哦!
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-9-17 10:14:42 | 显示全部楼层
eric2013 发表于 2022-9-17 01:12
GUIX Studio使能prompt文本控件动态更新需要置位标志GX_STYLE_TEXT_COPY
https://forum.anfulai.cn/forum.php ...

硬汉大哥,他这个是numeric prompt, 不是你说的那个text prompt
回复

使用道具 举报

4

主题

1459

回帖

1471

积分

至尊会员

积分
1471
发表于 2022-9-17 10:17:06 | 显示全部楼层
对了,你要重新对它进行下赋值操作,才会变。
gx_numeric_prompt_value_set(...)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 21:32 , Processed in 0.047768 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表