函數 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+什么。