0

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

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

例如:

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

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

4

1 回答 1

0

要根据用户的区域设置使用不同的图标,您可以在 .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"));
于 2017-08-23T07:47:09.937 回答