QTCN社区 -> Qt嵌入式开发 -> 求qt/e在arm板上显示中文的方法 [打印本页]登录 注册 回复主题 发表主题 newalan 2008-04-15 00:38 求qt/e在arm板上显示中文的方法 求qt/e在arm板上显示中文的方法 arm板是2410的,我在pc上的交叉编译环境是基于qt/e 2.3.10的,急求显示中文的方法(已能显示英文,只显示一个button,button上有英文字),最好贴写源码。 板子的/usr/qt/etc/fonts下有字体文件fontdir, 里面有几个helvetica的字体,比如其中一行为 helvetica helvetica_120_50.qpf QPF n 50 120 u 不知怎么设置,怎么编写代码,请赐教(源码) 我用下面的方法总是出现段错误,没法运行。 QTextCodec *code = QTextCodec::codecForName("GBK"); QString unistr = code->toUnicode("你好"); 浪漫天使 2008-04-15 02:26QTextCodec *code = QTextCodec::codecForName("GBK"); 这个code返回是空的 可能是不支持gbk,你可以用翻译的方法来达到中文的效果啊 badicoubid 2008-04-15 15:45TO LZ: 第一:你要有中文字体,如unifont 第二:你要设置你的显示控件使用中文字体 QFont f; f.setFamily("unifont"); f.setPointSize(16); label->setFont(f) ; 第三:qApp->setDefaultCodec(QTextCodec::codecForName("GBK")); newalan 2008-04-16 00:46 引用 引用第2楼badicoubid于2008-04-15 15:45发表的 : TO LZ: 第一:你要有中文字体,如unifont 第二:你要设置你的显示控件使用中文字体 QFont f; f.setFamily("unifont"); f.setPointSize(16); label->setFont(f) ; 第三:qApp->setDefaultCodec(QTextCodec::codecForName("GBK")); ....... 谢谢你的回答! 我在pc端的qvfb下先争取中文能正确显示(现在还是乱码) 1 有中文字体unifont 3 这个函数setDefaultCodec() 已经处于obsolete(废弃)状态,不能用了 能不能多贴点完整的源码,我接触的不过,代码太少了理解不了 newalan 2008-04-16 20:45谁有能正常显示中文的qt/e 程序源码? 发给我几个看看,搞明白后我将写个帖子以告后来者,多谢大家! 我的邮箱是 zfzhang@hitic.ia.ac.cn, 只要是能在arm板上正常显示中文即可,不管程序中使用了什么方法。 复杂的别人的源码也可以,我自己一直没找到。 谢谢诸位! owenbbkp 2008-04-17 20:30代码和一些介绍: http://blog.chinaunix.net/u2/66512/showart_545135.html 代码是Qtopia Core版本的,你需要稍微改一下 newalan 2008-04-23 14:39 引用 引用第5楼owenbbkp于2008-04-17 20:30发表的 : 代码和一些介绍: http://blog.chinaunix.net/u2/66512/showart_545135.html 代码是Qtopia Core版本的,你需要稍微改一下 我想知道,如果读取一个文本文件中的中文并显示(文本文件的编码是UTF8)怎么实现,这种情况恐怕不能用qt的国际化方法了吧? kjpioo 2009-02-17 12:58 引用 引用第6楼newalan于2008-04-23 14:39发表的 : 我想知道,如果读取一个文本文件中的中文并显示(文本文件的编码是UTF8)怎么实现,这种情况恐怕不能用qt的国际化方法了吧? kjpioo 2009-02-17 13:00这种情况下你直接读取文本信息,保存在QString对象中,再直接显示这个QString 对象就可以了。 aven152273 2009-02-17 17:02QTextCodec *code = QTextCodec::codecForName("UTF8"); QString unistr = code->toUnicode("你好"); label->setText(unistr ); aven152273 2009-02-17 17:04如果编码不是utf8的话。恐怕还需要再用fromUnicode()函数再转化一下