2011-11-30 22 views
0

私のアプリでは、いくつかのQDialogフォームがあります。
私のアプリケーションのインストールと翻訳の変更。 MainWindowは影響を受けていますが、他のダイアログはすべて新しい言語に変更されませんでした。
ランタイム(動的)ですべてのフォームlangを変更するにはどうすればよいですか?あなたが動的にアプリケーションの言語を変更した場合
は私にQt Appの動的変更の翻訳

void MainWindow::SetUILang() 
    { 
     QTranslator qtTranslator; 
     qtTranslator.load(QString("tr_fa"), "./Lang"); 
     qApp->installTranslator(&qtTranslator); 
     ui->retranslateUi(this); 

    } 

答えて

0

を助けてください、タイプのchangeEventが放出されます。あなたはそれをキャッチしてどこでもテキストをリセットする必要があります(tr関数を使用)>

void myclass::changeEvent(QEvent *event) { 
    if (event->type() == QEvent::LanguageChange) { 
     // Set all texts 
    } 
    else { 
     QWidget::changeEvent(event); 
    } 
} 
+0

メインウィンドウ。ユーザーが情報ボタンをクリックしたとき。情報フォームの新しいインスタンスを作成して表示すると、私はchangeEventコードを追加していますが、動作していません。 –

+0

言語を変更した後に新しいインスタンスを作成すると、すべてのテキストを正しく翻訳する必要があります。 'tr'関数でそれらを囲みましたか? – arne

+0

:はい、それはUIデザイナーのフォームにあり、私は翻訳可能にチェックされています –

関連する問題