首页| 论坛| 消息

标题:关于qt中文化问题
作者:embeddedman
日期:2010-08-02 11:32
内容:

大家好,我现在的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倒是不死机,但是中文的地方全变成了方块。
哪位大侠知道这个问题麻烦帮我解答下,谢谢先!


#1 [embeddedman 08-02 11:47]
现在执行QTextCodec *codec = QTextCodec::codecForName("GBK");不死机了,但是显示中文的地方还是变成了方块!
#2 [guowenmoon 08-17 11:30]
我的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();
}
#3 [lovezbh 08-29 22:13]
引用第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不要实例化也行?我试了下,连编译都通不过。请赐教!谢谢!

回复 发表
主题 版块