2012-10-09 30 views
2

我正在用Qt框架編寫一個多語言程序。我想在運行時更改語言。我在一個插槽中編寫了下面的代碼,但它不起作用。如何在Qt運行時改變語言?

QTranslator translator; 
    translator.load("arrowpad_tr"); 
    qApp->installTranslator(&translator); 
+0

我添加了我的類的更改事件代碼,併爲所有窗口小部件添加setText(),但它又不起作用... –

+0

thanks @Bart .Ok ...我添加了一個QTranslator指針到我的類,並在更改語言之前調用removeTranslator()函數並刪除指針並從QTranslator創建一個新指針... –

回答

3

安裝翻譯器只意味着特定的翻譯器變得可用。這是由QCoreApplication的LanguageChange事件發出的。你仍然需要調用的是retranslateUi();,它將處理Qt Designer部件的實際翻譯。對於自定義小部件,您必須根據事件創建類似的東西。

+2

請小心重新輸入[this one]之類的錯誤(https://bugreports.qt-project.org/browse/QTBUG-3863)。 – scai

+0

@scai是的,好點。確實是令人討厭的。 – Bart