首页| 论坛| 消息

标题:qml中文显示
作者:bluesealycn
日期:2010-10-29 09:57
内容:

在qml里中文文本显示乱码,不知怎么解决,哪位高手帮帮忙啊?不甚感激!


#1 [dbzhang800 10-29 10:37]
1. 建议使用Qt提供的国际化功能
text: qsTr("This text should be translated and %1 is the arg").arg("foo")
2. 直接用unicode
" \u6211\u662f\u4e2d\u6587"
3. 可能会有(或以后会有)直接输入汉字和指定编码的方法
#2 回 1楼(dbzhang800) 的帖子 [bluesealycn 10-29 14:05]
非常感谢!第一种方法还没试,第二种方法试了,直接在qml文件里加入unicode可以显示中文,但在c++里通过setContextProperty("mytext",myt)设置属性的方式还是显示乱码,不知道怎么回事?例如:myt = " \u6211\u662f\u4e2d\u6587",再用setContextProperty("mytext",myt)设置mytext属性,运行程序,还是显示乱码。请多指教!
#3 Re:回 1楼(dbzhang800) 的帖子 [dbzhang800 10-29 14:21]
引用第2楼bluesealycn于2010-10-29 14:05发表的 回 1楼(dbzhang800) 的帖子 :
非常感谢!第一种方法还没试,第二种方法试了,直接在qml文件里加入unicode可以显示中文,但在c++里通过setContextProperty("mytext",myt)设置属性的方式还是显示乱码,不知道怎么回事?例如:myt = " \u6211\u662f\u4e2d\u6587",再用setContextProperty("mytext",myt)设置mytext属性,运行程序,还是显示乱码。请多指教!
c++ 中就需要遵循 c++ 的方式, 确保你的 myt 是一个正确的 QString
http://hi.baidu.com/cyclone/blog/item/9d7293130e5a498d6538dbf1.html
#4 回 3楼(dbzhang800) 的帖子 [bluesealycn 10-30 20:08]
非常感谢!看了你的贴后,将QTextCodec::setCodecForTr(QTextCodec::codecForLocale());改为QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));再将字串设为myt = " \u6211\u662f\u4e2d\u6587",运行程序中文就显示出来了。谢谢!还想问问怎么能实现方法3?

回复 发表
主题 版块