之前的项目中并不知道QT居然还可以设置数组的多语言,害得我定义多个数组这种写法,

今天在查阅SVG资料的时候,无意之间看到这样两个宏(狗头大意了!):

QT_TRANSLATE_NOOP 和  QT_TR_NOOP

第一个宏有两参数:类名 + 字符串,这个类名就是语言家中所显示用到的类名(可随意输入)

第二个宏有两参数:字符串,这个就当成普通TR宏使用即可

无论哪一种方法,都要写一个get这种函数来获取,示例代码如下:

static const char  g_szDrawBase[DRAW_BASE_COUNT][MAX_STR_SIZE] = {
    QT_TRANSLATE_NOOP("DrawBase", "直线"),
    QT_TRANSLATE_NOOP("DrawBase", "矩形"),
    QT_TRANSLATE_NOOP("DrawBase", "静态文本"),
};

QString getStringDrawBase(int index)
{
    return qApp->translate( "DrawBase", g_szDrawBase[index]);
}

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐