如何根据QTranslator

时间:2017-08-16 20:18:43

标签: qt translation qpushbutton qaction qtranslator

我有一个带有按钮的应用程序,这些按钮具有为各种点击状态设置的图标,没有设置或显示实际的QPushButton文本;它全部包含在图标中。

这些图标文件包含需要翻译的文本,并且已针对每种语言和状态生成。我正在寻找一种方法来使用QTranslator或QAction类根据所选主语言自动选择要使用的按钮的本地化版本。

例如:

BTN_Media_Browse->setIcon(QIcon(QPixmap(tr(":/Images/BTN_Media_Browse_Unpressed.png"))));

我已按照QT Wiki: Multi Language Application上的说明操作,但按钮未显示在生成的翻译(.ts)文件中。根据语言为每个使用实例设置一个开关盒并不理想。

1 个答案:

答案 0 :(得分:0)

要根据用户的区域设置使用不同的图标,您可以在.qrc文件中添加fireAllRules部分qresource属性。

例如:

lang

然后你可以使用这样的代码:

<qresource>
    ...
    <file alias="Images/BTN_Media_Browse_Unpressed.png">Images/BTN_Media_Browse_Unpressed_en.png</file>
    ...
</qresource>
<qresource lang="de">
    ...
    <file alias="Images/BTN_Media_Browse_Unpressed.png">Images/BTN_Media_Browse_Unpressed_de.png</file>
    ...
</qresource>