Skip to main content
Associate II
November 13, 2025
Solved

Text with wildcard not working, help!

  • November 13, 2025
  • 1 reply
  • 235 views

This is one of those problems where I spent more hours than I care to explain.

I've got a text box configured with a wildcard:

alanoatwork_0-1763053165324.png

In Designer, I've got a typography set to Voltage, 20px:

alanoatwork_1-1763053256250.png

Here's the typographies:

alanoatwork_2-1763053294492.png

Screen1ViewBase.cpp entry looks like this:

 

 
 textCellVoltage.setPosition(191, 0, 67, 24);
 textCellVoltage.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 textCellVoltage.setLinespacing(0);
 Unicode::snprintf(textCellVoltageBuffer, TEXTCELLVOLTAGE_SIZE, "%s", touchgfx::TypedText(T___SINGLEUSE_B9IA).getText());
 textCellVoltage.setWildcard(textCellVoltageBuffer);
 textCellVoltage.setTypedText(touchgfx::TypedText(T___SINGLEUSE_F28R));
 textCellVoltage.setVisible(false);
 ImplantData.add(textCellVoltage);

 

Screen1View.cpp looks like this:

void Screen1View::enableScreenElementsAfterInterrogation() {
	tab2.setAlpha(255);
	tab2.invalidate();

	textCellVoltage.invalidate();
	Unicode::snprintf(textCellVoltageBuffer, 20, "%s", "123");
	textCellVoltage.setWildcard(textCellVoltageBuffer);
	textCellVoltage.resizeToCurrentTextWithAlignment();
//	textCellVoltage.resizeToCurrentText()
	textCellVoltage.setVisible(true);
	textCellVoltage.invalidate();
}
 

However, when enableScreenElementsAfterInterrogation is called, I see ?3?.  I've tried using resizeToCurrentTextWithAlignment, but that gives the same result.

I must be doing something ridiculous, as this is slightly more difficult than printing "Hello world!".

Any help would be appreciated.

Best answer by ferro

Hi @alanoatwork 

Try to add 'u' prefix to the string as printf expects unicode

Unicode::snprintf(textCellVoltageBuffer, 20, "%s", u"123");

 

touchgfx\framework\include\touchgfx\Unicode.hpp

ferro_0-1763056353996.png

 

1 reply

ferro
ferroBest answer
Lead
November 13, 2025

Hi @alanoatwork 

Try to add 'u' prefix to the string as printf expects unicode

Unicode::snprintf(textCellVoltageBuffer, 20, "%s", u"123");

 

touchgfx\framework\include\touchgfx\Unicode.hpp

ferro_0-1763056353996.png

 

Associate II
November 13, 2025

Yes, that works!  Thanks.  

Programming can sometimes be very frustrating and rewarding at the same time.

 

ferro
Lead
November 13, 2025

I know, it's a jungle !