2012-12-07 14 views
2

本地化的QPrintDialog中以下罰款作品:如何本地化從QPrintDialog調用的QFileDialog?

#include <QtGui/QApplication> 
#include <QTranslator> 
#include <QPrintDialog> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QTranslator translator; 
    if (translator.load("./translations/qt_de.qm")) { 
     a.installTranslator(&translator); 
    } 

    QPrintDialog printdialog; 
    printdialog.exec(); 
} 

但是當我點擊的QPrintDialog中的「選擇文件」 - 鍵(與三個點),文件對話框的英文版本出現,而不是我想要的德國人之一。

此外,還有在控制檯的警告:

KGlobal ::區域::警告:您的全球KLocale被重新創建一個有效的主要成分,而不是假的成分,這通常意味着你試圖在創建主要組件之前調用i18n的相關功能。你不應該這樣做,因爲它很可能不會工作

我應該在哪裏看?

至於提到的解決方法here:有些QDialog支持一個:: DontUseNativeDialog標誌,但是QPrintDialog不支持。

(在Linux上測試過,不知道結局如何在其他平臺上)

回答

0

嘗試translator.load後,加入這行:

一個:: installTranslator(&譯者); //或類似的東西(*)

和閱讀有關的QApplication :: installTranslator方法文檔...

(*)對不起,我檢查,這是一個QCoreApplication的方法。我通過qApp宏將它用於QMainWindow子類,我不知道如何從main.cpp調用它。請做一些測試。