• 5362阅读
  • 3回复

关于qt中文化问题 [复制链接]

上一主题 下一主题
离线embeddedman
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-02
— 本帖被 XChinux 执行加亮操作(2010-09-03) —
大家好,我现在的arm linux版本的qt embedded 2.3.10只能显示英文,我在网上看到想显示中文有如下方法:
1.在主函数中:
QTextCodec *codec = QTextCodec::codecForName("GBK");
    a.setDefaultCodec(codec);
    a.setFont(QFont("unifont", 10));    
2.在想中文化的类的实现文件中加入函数:
QString ChineseAndEnglish(const char*ChineseString)
{
    QTextCodec* gbk_codec = QTextCodec::codecForName("GBK");
    return gbk_codec->toUnicode(ChineseString);
}
3.在要显示字符串的地方,调用ChineseAndEnglish函数将字符串转为unicode.
但是现在我一执行QTextCodec *codec = QTextCodec::codecForName("GBK");就sigmentation fault,将GBK换成UTF8倒是不死机,但是中文的地方全变成了方块。
哪位大侠知道这个问题麻烦帮我解答下,谢谢先!
离线embeddedman
只看该作者 1楼 发表于: 2010-08-02
现在执行QTextCodec *codec = QTextCodec::codecForName("GBK");不死机了,但是显示中文的地方还是变成了方块!
离线guowenmoon
只看该作者 2楼 发表于: 2010-08-17
我的main函数是这样,用了文泉译字体wenquanyi  可以完美显示中文
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
        QTextCodec *str=QTextCodec::codecForName("UTF8");
        QTextCodec::setCodecForTr(str);
        QTextCodec::setCodecForCStrings(str);
        QTextCodec::setCodecForLocale(str);
        app.setFont(QFont("wenquanyi"));
    MainWindow w;
        w.showNormal();
    return app.exec();
}
离线lovezbh
只看该作者 3楼 发表于: 2010-08-29
引用第2楼guowenmoon于2010-08-17 11:30发表的 :
我的main函数是这样,用了文泉译字体wenquanyi  可以完美显示中文
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
        QTextCodec *str=QTextCodec::codecForName("UTF8");
.......

QTextCodec不要实例化也行?我试了下,连编译都通不过。请赐教!谢谢!
快速回复
限100 字节
 
上一个 下一个