• 5026阅读
  • 5回复

崩溃了,请大家帮帮忙吧,还是QT下中文显示的问题 [复制链接]

上一主题 下一主题
离线cimcenter
 

只看楼主 正序阅读 楼主  发表于: 2007-12-02
崩溃了,请大家帮帮忙吧,还是QT下中文显示的问题
我用Qtdesigner 生成了个工程。一个PUSHBOX,点击之后一个MESSAGELABEL显示出汉字。其中用
下面的代码来进行中文显示,

  1.  
  2. #include "hello.h"
  3. #include <qlabel.h>
  4. #include <qtextcodec.h>
  5. HelloForm::HelloForm( QWidget* parent, const char* name, WFlags fl):
  6. HelloBaseForm(parent, name, fl)
  7. {
  8. }
  9. HelloForm::~HelloForm()
  10. {
  11. }
  12. void HelloForm::SayHello()
  13. {
  14.     QCString  str = "中文";
  15.     QTextCodec *codec = QTextCodec::codecForName("GBK");
  16.     QString strText = codec->toUnicode(str);
  17.    
  18.     MessageLabel->setText(strText);
  19.                     //QString str = str.fromLocal8Bit("中文");
  20.     //MessageLabel->setText(str);
  21. }


程序编译通过,可是执行到QString strText = codec->toUnicode(str);一句时,REDHAT9发生 Abort错误。
在开发板上同样是这个结果,
换用注释掉的语句,程序可执行通过,可是显示出来的字符为乱码(不是方块)。
这是什么原因呢,请各位老师同仁指导,实验室一干人等翘首企盼。
如果我说得不清楚,请您提出来,我马上响应。
再次感谢您的热心。
离线shiroki

只看该作者 5楼 发表于: 2007-12-12
是的哦
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线fzy112001
只看该作者 4楼 发表于: 2007-12-08
可能是编译时的配置问题,没有加上编码支持,请确认 qconfig-qpe.h 中以下几行被注释掉或者直接删除以下几行,然后再编译!
38    #ifndef QT_NO_CODECS
39    #define QT_NO_CODECS
40    #endif
祝你成功!~
离线youngst

只看该作者 3楼 发表于: 2007-12-04
试试用tr翻译看看 

  QTextCodec::set codecForTr (QTextCodec::codecForName("GBK"));
QString  str = tr("中文");
 

  MessageLabel->setText(str);
离线cimcenter

只看该作者 2楼 发表于: 2007-12-04
请大家帮忙看看吧
离线cimcenter

只看该作者 1楼 发表于: 2007-12-02
用的是qt embedded 2.3.7,
快速回复
限100 字节
 
上一个 下一个