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