1

私は現在、言語を動的に変更できる Qt アプリに取り組んでいます。

文字列を翻訳するために、各ウィジェットでメソッドを使用しQTranslatorてオーバーロードしましたchangeEventが、この側ではすべてが正常に機能しています。

プロジェクトのリソースとは別のことです。実際、Qt リソースはlangアプリケーションのリソース ファイル (.qrc) に属性を持つことができますが、ユーザーのロケールに基づいて、アプリケーションの起動時にのみ読み込まれるようです。これは私が望むものではありません。コードで LanguageChange イベントが発生したときに、これらのアイコンを動的に変更できるようにしたいと考えています。

リソース ファイルを変更するために rcc ファイルを使用できますが、このファイルは実行時にのみロードされるようです。そのため、プログラムを実行する前に Qt Designer のリソースにアクセスすることはできません。

たとえば、resource_en.qrcアプリケーションの .pro ファイル内のファイルを使用して、Qt Designer でアイコンを設定し、.rcc files実行時に (resource_fr,etc...) を使用してリソースを動的に設定できますか? しかし、リソースから .qrc ファイルを登録解除し、それを .rcc ファイルに置き換えるにはどうすればよいでしょうか (可能な場合)。

私が自分自身を十分に明確にしたことを願っています:D

ありがとうございました :)

4

3 に答える 3

2

setWindowIcon メソッドを使用すると、アプリケーション アイコンを動的に簡単にロードできます。mainWin が QMainWindow であると仮定します。

if (lang == en)
    mainWin.setWindowIcon(QIcon(":/Resources/icon/en-icon.png"));
else if (lang == vn)
    mainWin.setWindowIcon(QIcon(":/Resources/icon/vn-icon.png"));

これが役立つことを願っています。

于 2013-09-03T10:08:37.347 に答える
1

QLocaleを使用してロケールを変更することはできますか?

   QLocale::setDefault(QLocale(QLocale::Basque, QLocale::Spain));
于 2013-09-03T12:27:40.637 に答える