snprintf用问号替换数字-TouchGFX

时间:2019-03-13 09:04:00

标签: c++

我目前正在尝试学习TouchGFX Gui的实现。

为简单起见,我想创建一个滑块,并创建一个文本区域来显示此滑块的当前值。

在示例项目中已经看到,更改所需的textArea的文本

  1. 一个textAreaBuffer类型touchgfx::Unicode::UnicodeChar,最后是uint16_t array
  2. Unicode::snprintf(textAreaBuffer,BufferSize,"Value: %d",value)

我当前用于更改文本的功能是:

void MainScreenView::changeTextAreaValue(int slidervalue)
{
    Unicode::snprintf(textArea1Buffer, 3, "%d", slidervalue);
    textArea1.resizeToCurrentText();
    textArea1.invalidate();
}

在设计器中,我添加了一个有关更改滑块值的事件,该事件调用此虚函数。 这是我对文本区域的设置

textarea Settings Text Resource Settings

但是当我运行该程序时,一旦移动滑块,标签就会显示??而不是期望值

2 个答案:

答案 0 :(得分:1)

此问题是由于未定义here中所述的通配符范围。该软件找不到任何可用的字符来表示数字。

答案 1 :(得分:1)

有关为什么看到“?”的一些其他信息。

TouchGFX使用Excel工作表,该工作表允许您指定要从特定字体针对特定大小(“印刷”)生成的字符。

例如,如果您正在使用带通配符的TextArea,并且放置在关联缓冲区中以进行渲染的字符均不会在..

中表示
  1. 闪存
  2. 字体缓存

...它将退回到为该版式指定的“后退”字符(也在excel工作表中)。