• 4540阅读
  • 4回复

[提问]请大家帮我看看这个代码有什么错误 [复制链接]

上一主题 下一主题
离线diedwalker
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-02
QString tempstr;
tempstr=QString("我说 :")+TextEdit->text();

QLabel->setText(tempstr);

结果textedit中的中文文字可以显示出来,不过“我说 ”却乱码,请问是怎么回事,应该怎么改?
离线cutemmll
只看该作者 1楼 发表于: 2012-02-02

编码格式问题,在你的main函数中加入下面的代码
  1. int main(int argc, char *argv[])
  2. {
  3.     QApplication a(argc, argv);
  4.     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB18030"));
  5. //....
  6.     return a.exec();
  7. }




c------------enjoy qt & enjoy life-----------++
离线淳于半邪

只看该作者 2楼 发表于: 2012-02-02
楼上的是一种方法,也可以直接改:
QString tempstr;
tempstr=QString::fromLocal8Bit("我说 :")+TextEdit->text();

QLabel->setText(tempstr);
离线jdwx

只看该作者 3楼 发表于: 2012-02-02
引用第2楼淳于半邪于2012-02-02 14:21发表的  :
楼上的是一种方法,也可以直接改:
QString tempstr;
tempstr=QString::fromLocal8Bit("我说 :")+TextEdit->text();
QLabel->setText(tempstr);

这个简单一些。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线diedwalker
只看该作者 4楼 发表于: 2012-02-02
谢谢大家了,已经解决了
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()) ;

tempstr=QString(QObject::tr("我说 :"))+TextEdit->text();

这样就可以了,当然楼上的方法也可以
快速回复
限100 字节
 
上一个 下一个