关于Qt界面转换中英文的问题

急急急!下面是我写的代码QStringtext=QString::number(sound_temp.id+1).sprintf("%03d",sound_temp.id... 急急急!

下面是我写的代码QString text =

QString::number(sound_temp.id+1).sprintf("%03d",sound_temp.id+1)+ sound_temp.name;
button_container_sound_left_and_right.
get_button_by_index(i)->setText(tr(text.toLatin1));
其中sound_temp.id和sound_temp.name是用来从一个字符串数组中调用相应的字符串的,我这么是因为我想把字符串汉化,现在编译的时候出现如下的错误:/home/emsym/ringway/emd1207_z1/src/window/mainwindow.cpp:142: 错误:no matching function for call to 'MainWindow::tr(<unresolved overloaded function type>) 请问这个怎么解决呢?
展开
 我来答
匿名用户
推荐于2016-11-02
展开全部
好像是你的实参传递不对。
你可以把setText(tr(text.toLatin1)); 改为setText(tr(“测试”));试试,如果界面能正常显示测试二字,说明就是实参有错误。

而且你那个 QString text = 的那一串,没看懂.......
你可以看看你这一串是什么值。是不是 你预期的字符串。
更多追问追答
追问
我那个QString text = 的那一串其实在另外一个.cpp里面调用的字符串数组,看代码如下:sound sound_array[MAX_SOUNDS]=
{
{0,"Grand Piano 1"},
{1,"Grand Piano 2"},
  };
  定义如下:
  struct sound
{
int id;
QString name;
  };
  
追答

1.你这儿的数组定义有问题吧。应该写成struct sound sound_array[MAX_SOUNDS]。

或者你用typedef来定义结构体类型,就可以那样使用了。

typedef struct
{

 int id;

 QString name;
}sound;

2.没明白你的sprintf("%03d",sound_temp.id+1)是干啥的。

我做了个测试,看截图,能正确显示内容。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式