码迷,mamicode.com
首页 > 其他好文 > 详细

Qt5对付中文真好用

时间:2014-08-04 20:59:07      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   io   文件   

Qt好多C++程序员都在用,Qt4大家可能用的多,到了Qt5不熟悉的人到是很多,其中我喜欢的特性也是和Qt4大不一样的地方就是对中文的处理。

Qt4中使用“QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));”类似的语句来解决问题,但是这种全局性的设置在一些情况是下是会影响其他语言的。例如软件中存在多种语言。

Qt5中是怎么解决中文的呢?我的理解就是QString一个类直接全部搞定。

例如想保存中文到文件中,再将文件中的中文内容读取到程序中。

一下是代码片段:

 1 bool MainWindow::__ReadFile(const QString &filename)
 2 {
 3     QFile infile(filename);
 4     if (infile.open(QIODevice::ReadOnly))
 5     {
 6         //textEdit->setPlainText(QString::fromLocal8Bit(infile.readAll()));
 7         textEdit->setPlainText(QString::fromUtf8(infile.readAll()));
 8         infile.close();
 9 
10         setWindowModified(false);
11         setWindowTitle(filename);
12         return true;
13     }
14     return false;
15 }
 1 bool MainWindow::__WriteFile(const QString &filename)
 2 {
 3     QFile outfile(filename);
 4     if (outfile.open(QIODevice::WriteOnly))
 5     {
 6         //outfile.write(textEdit->toPlainText().toLocal8Bit().data());
 7         outfile.write(textEdit->toPlainText().toUtf8().data());
 8         outfile.close();
 9 
10         setWindowModified(false);
11         setWindowTitle(filename);
12         return true;
13     }
14     return false;
15 }

 

QString::fromUtf8

QString::toUtf8

或者

QString::fromLocal8Bit
QString::toLocal8Bit

使用“一对”就可以完美解决中文输入输出问题。

大家可以试试。

实验源码:点击这里
 


 

Qt5对付中文真好用,布布扣,bubuko.com

Qt5对付中文真好用

标签:style   blog   http   color   使用   os   io   文件   

原文地址:http://www.cnblogs.com/superstargg/p/3890703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!