2011-09-15 27 views
3

私のqt4ベースのアプリケーションは、retranslateUi()関数を呼び出すことによってGUI言語を動的に変更します。それは魅力的ですが、QLabelがプログラムによって変更されたテキストを処理するとき、私のプログラムで設定された元のテキスト(Qtデザイナーで指定されたもの)を翻訳しようとします。retranslateUi()QLabelテキストを消去します

retranslateUi()がビルドプロセス中に自動生成されるため、私の変更についてはわからない可能性がありますが、そのような場合はQLabelを完全にスキップすることをお勧めします。 retranslateUi()にある特定のウィジェットをスキップするようにQtに指示する方法はありますか?また、私のプログラムでQLabelのコンテンツの変更を無効にすることはできますか?

私はQLabelサブクラスすることができます知っているとsetText()をオーバーライドすることで、この問題を解決するが、私はQtのデザイナを使用して、それを操作できるようにするには、標準QLabelを使用することを好みます。

答えて

6

私が覚えているように、Designerでは、翻訳する必要がある場合はQLabelのチェックを外すことができます。デフォルトでは、翻訳したくないラベルを選択し、プロパティエディタで "text"プロパティまでスクロールして展開し、翻訳チェックボックスをオフにします。次に、ui _ *。hファイルを再度生成する必要があります。その後、あなたのラベルは再翻訳されていません。コード

+0

このようなものがありますが、 'text'の下には見えません。それはまさに私が探していたものです、多くのありがとう! – qrdl

関連する問題