zoukankan      html  css  js  c++  java
  • 'UTextRenderComponent::SetText': Passing text as FString is deprecated, please use FText instead (likely via a LOCTEXT)

    错误提示就是说接收FString参数的方法被弃用了,需要使用FText作为参数(为了方便本地化)

    解决报错只需要改用:

    CountdownText->SetText(FText::AsNumber(CountdownTime));
    
    CountdownText->SetText(INVTEXT("GO!"));

    还需要在cpp文件头部添加:

    #define LOCTEXT_NAMESPACE "MyNamespace" 

    并在末尾添加:

    #undef LOCTEXT_NAMESPACE

    以上操作创建了一个本地化的命名空间,从而可以使用LOCTEXT创建FText

    代码里有两种方法直接创建FText:

    FText LOCTEXT("MyKey", "MyString"); // 本命名空间
    
    FText NSLOCTEXT("MyOtherNamespace", "MyKey", "MyString") // 使用其他命名空间

    每个Key对应一个字符串,用Key就可以得到真正展示给用户的字符串,从而方便本地化(虽然写起来麻烦)

    如果想要使用字符串格式化,可以:

    int32 MyNumber = 755;
    FText::Format(LOCTEXT("ShowMyNumber", "My Number: {0}"), MyNumber);

    一些常用数字的还可以直接使用:

    float MyFloat = 1234.5
    FText::AsNumber(MyFloat); // 1,234.5
    
    float MyPercent = 0.2;
    FText::AsPercent(MyPercent); // 20%
    
    float MyMemory = 1234; // 字节
    FText::AsMemory(MyMemory); // 1.2KiB

    还有更多的格式化的可参考文档中关于文本本地化部分

    如果只是使用FText而不进行本地化:

    FText::AsCultureInvariant("MyString");

    或者使用一种简写的格式:

    INVTEXT("MyString");

    (由于不进行本地化,所以就不需要指定Key了)

    同样的,FText的格式化也有许多简写格式,比如FText::AsNumber可以直接用LOCGEN_NUMBER等,有需要的时候再翻文档即可。

  • 相关阅读:
    Qt5.3.2(VS2010)_调试_进入Qt源码
    Qt5.3.2(VS2010)_调试_遇到的问题
    Qt_QString::split测试
    Qt_QString.indesOf和mid测试
    激活_目标窗口
    DrawDibDraw__ZC测试
    【转】DrawDibDraw
    数学运算_基本_01
    get和post请求及进程和线程及cookie和session的区别
    Redis性能优化之redis.cnf配置文件
  • 原文地址:https://www.cnblogs.com/yl-xy/p/13854989.html
Copyright © 2011-2022 走看看