函数 tr()全名是QObject::tr(),被它处理的 字符串可以 使用工具提 取出来翻译 成其他语言, 也就是做国际化使用。
只要记住,Qt 的最佳实践:如果你想让你的程序国际化的话,那么,所有用户可见的字符串都要使用 QObject::tr()!
但是,为什么我们没有写 QObject::tr(),而仅仅是 tr()呢?原来,tr()函数是定义在 Object里面的,所有使用了 Q_OBJECT 宏的类都自动具有 tr()函数。
在书中看到的一句话,如果想要你做的程序国际化,就把所有用户可见的字符串写到tr()中去,可直接用工具翻译成多语言的版本.
转载:https://blog.csdn.net/Mountain_Zhou_only/article/details/79929058
为什么有些字符串前面会有&号呢?比如像下面这样:
openAction = new QAction(tr("&Open"), this);
为什么会出现呢?因为这是一个定义action的初始化字符串,“&”主要用于快捷键,就好比按下alt的时候我们使用的桌面程序也会有快捷键一样。而且这个快捷键与字符串的首字母有关,首字母是什么 快捷键就是 alt+什么。