分享

QFileSystemModel 显示中文的方法

 若渴若愚 2012-02-22

QFileSystemModel 显示中文的方法

 


QFileSystemModel QDirModel显示信息的中文化方法

这两个QT类,用qtreeview可以显示文件的详细信息。做到这点是很简单的。网上有很多资料不多说了。

我在实现了这个方法后,却发现一个问题,那就是文件的标题栏和详细信息都是英文的,那么怎么让它中文化呢。
这就要用到QT的国际化方法。
我用的是类似如下的代码
   QApplication a;
   QTranslator translator(0);
    translator.load("filemanager_zh",".");
    a.installTranslator(&translator);
但是这样只能中文化你自已的一些信息,而不能中文化QT自身的信息。其实在qt/translate目录下有一文件qt_zh_CN.qm,就是QT自身中文翻译文件。将它拷贝到你的项目内,并
加入如下代码。
    QTranslator qttranslator(0);
    qttranslator.load("qt_zh_CN",".");
    a.installTranslator(&qttranslator);
这样,英文信息基本就中文化了。其实,这样,不仅是文件的详细信息被中文化,QT自带的各种控件的信息也都中文化了,如QFileDialog,QMessage等。
但是,QT提供的这个文件没有包括所有的信息翻译,比如文件的详细信息中,Folder就没有翻译。
查了半天,发现这个信息是包含在qt/src/gui/itemviews/qfileiconprovider.cpp中的,我们可以用lupdate qfileiconprovider.cpp -ts qfile_info_zh.ts生成ts文件。再用
linguist对ts进行翻译,再发布,这样就会生成qfile_info_zh.qm文件,把它拷贝到项目下,再加入如下代码

    QTranslator fileinfotranslator(0);
    fileinfotranslator.load("qfile_info_zh",".");
    a.installTranslator(&fileinfotranslator);
好了,世界清静了,所有的英文信息都变成中文的了。
问题的解决看似很容易,可要找到这个方法却很不容易,花费了不少时间,不过,在此过程中,我对QT的国际化方法有了一定的了解,也算值了。  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多