欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
下面分两种情况进行说明。
一、QString 转换为 char *
方法如下:
- 1 QString str;
- 2 char* ch;
- 3 QByteArray ba = str.toLatin1(); // must
- 4 ch=ba.data();
方法1:
添加GBK编码支持:
- 1 #include
- 2
- 3 QTextCodec::setCodecForTr(QTextCodec::codecForName(“GBK”));
- 4 QTextCodec::setCodecForLocale(QTextCodec::codecForName(“GBK”));
然后将上面的第3行修改为:
- 1 QByteArray ba = str.toLocal8Bit(); // toLocal8Bit 支持中文
方法2:
先将 QString 转为标准库中的 string 类型,然后将 string 转为 char *。如下:
- 1 QString filename;
- 2 std::string str = filename.toStdString();
- 3const char* ch = str.c_str();
二、 char * 转换为 QString
将 char * 转换为 QString 比较容易操作,我们可以使用 QString 的构造函数进行转换:
QString(const QLatin1String &str);
欢迎大家来到IT世界,在知识的湖畔探索吧!
- 1
QLatin1String 的构造函数:
欢迎大家来到IT世界,在知识的湖畔探索吧!QLatin1String(const char *str);
- 1
因此用下面这个语句就可以将 char * ch 转换为 QString str 了,如下:
str = QString(QLatin1String(ch));
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/114267.html