2017-08-16 16 views
0

アイコンをさまざまなクリック状態に設定したボタンを持つアプリケーションがあります。実際のQPushButtonテキストは設定または表示されません。それはすべてアイコンに含まれています。QTranslatorに基づいてQPushButtonのアイコン文字列を変更する方法

これらのアイコンファイルには、翻訳が必要なテキストが含まれており、言語と状態ごとに既に生成されています。 QTranslatorまたはQActionクラスを使用して、選択したメイン言語に基づいて使用するボタンのローカライズされたバージョンを自動的に選択する方法を探しています。例えば

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

私はQT Wiki: Multi Language Application上の指示に従ってきたが、ボタンが生成された翻訳(.TS)ファイルに表示されません。言語に基づいてその使用の各インスタンスのスイッチケースを持つことは理想的ではありません。

+0

あなたは、テキスト全体またはその一部だけを翻訳しますか? – eyllanesc

+0

場所のテキストを翻訳したいと思います。例: 'tr(":/ Images/BTN_Media_Browse_Unpressed.png ")'は次のようになります:/Images/BTN_Media_Browse_Unpressed_ja.png "または:" /Images/BTN_Media_Browse_Unpressed_de.png " 分かりやすく編集されています。 – Nfettinger

+0

github、drive、dropboxなどでテストコードを共有できます。 – eyllanesc

答えて

0

ユーザーのロケールに応じて異なるアイコンを使用するには、.qrcファイルにlang属性のあるqresourceセクションを追加できます。例えば

<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")); 
関連する問題