定义了一个结构体
struct XXXMap
{
char* item;
char* desc;
}
在很多地方都要用,因此在全局函数里面声明一个这样的结构体数组,
AppGlobal.h
extern XXXMapg_Param[];
AppGlobal.cpp中
XXXMap g_Param[]=
{
{"Id","编号"},
{"Name","名称"},
};
如果这样的话,是没有问题的,但是想让字符串加上tr以后方便翻译,换成下面的初始化方式发现desc并没有赋值成功,Id与Name的desc总是为一个空串。
XXXMap g_Param[]=
{
{"Id",QObject::tr("编号").toAscii().data()},
{"Name",QObject::tr("名称").toAscii().data()},
};
我也曾试过将item与desc定义为QString类型的,这样声明后不能这样初始化对象,语法关就过不了,说没有构造函数。
XXXMap g_Param[]= //将item与desc换为QString类型
{
{QObject::tr("Id"),QObject::tr("编号")},
{QObject::("Name"),QObject::tr("名称")},
};
请问大家有没有办法既能使用tr()又能保证成功初始化的?麻烦指点一二。