如何根据QTranslator更改QPushButton的图标字符串



>我有一个应用程序,其按钮为各种单击状态设置了图标,没有设置或显示实际的QPushButton文本;它都包含在图标中。

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

例如:

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

我已经按照QT Wiki:多语言应用程序上的说明进行操作,但按钮没有显示在生成的翻译(.ts(文件中。基于语言的每个使用实例都有一个开关大小写并不理想。

要根据用户的区域设置使用不同的图标,您可以在 .qrc 文件中添加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>

然后,您可以将其与如下代码一起使用:

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

最新更新