首页 > 其他分享 >QString转char*

QString转char*

时间:2022-11-15 14:32:03浏览次数:45  
标签:string char QString str QTextCodec define





方法如下:

Qstring  str;

char*  ch;

QByteArray ba = str.toLatin1();    

ch=ba.data();

这样就完成了QString向char*的转化。经测试程序运行时不会出现bug

补充:以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char*就是乱码,采用如下方法解决:

方法1:

添加GBK编码支持:

#include <QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

然后改变上面的第三行为:QByteArray ba = str.toLoacl8Bit();      toLoacl8Bit支持中文

方法2:

先将QString转为标准库中的string类型,然后将string转为char*,如下:

std::string str = filename.toStdString();

const char* ch = str.c_str();

参考:
http://www.cppblog.com/wicbnu/archive/2011/03/16/141956.aspx

-------------------------------------------------------------------------------------------

今天这个方法试了,还是没有成功,我用过toLatin1(),toAscii(),toLocal8Bit(),均没有成功
换成先用std::string存储字符串,然后转成char*,成功了

-------------------------------------------------------------------------------------------

在windows下的QT编程中的_TCHAR与QString之间的转换
由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )
#ifdef UNICODE
#define QStringToTCHAR(x) (wchar_t*) x.utf16()
#define PQStringToTCHAR(x) (wchar_t*) x->utf16()
#define TCHARToQString(x) QString::fromUtf16((x))
#define TCHARToQStringN(x,y) QString::fromUtf16((x),(y))
#else
#define QStringToTCHAR(x) x.local8Bit().constData()
#define PQStringToTCHAR(x) x->local8Bit().constData()
#define TCHARToQString(x) QString::fromLocal8Bit((x))
#define TCHARToQStringN(x,y) QString::fromLocal8Bit((x),(y))
#endif

标签:string,char,QString,str,QTextCodec,define
From: https://blog.51cto.com/u_12606971/5852648

相关文章

  • vue+echarts绘制地图
    代码实现importchinaJsonfrom'echarts/map/json/china.json'exportdefault{mounted(){letmyChart=this.$echarts.init(document.getElementById("......
  • React+echarts (echarts-for-react) 画中国地图及省份切换
    有足够的地图数据,可以点击到街道,示例我只出到市级以umi为框架,版本是:"react":"^18.2.0","umi":"^4.0.29","echarts":"^5.4.0","echarts-for-rea......
  • ECharts基础概念
    简要介绍下ECharts中的基础概念:1、echarts实例:一个网页中可以创建多个echarts实例。每个echarts实例中可以创建多个图表和坐标系等。dom节点作为echarts的渲染容器,......
  • react hooks echart自适应解决方案
    //index.tsximportReact,{useEffect,useRef,useState}from"react";import*asechartsfrom"echarts";importuseEchartResizerfrom"./useEchartResizer";......
  • TypeScript 使用 echart 小结
    可使用封装好的echarts-for-weixin下载说明引入组件说明导入组件{"usingComponents":{"ec-canvas":"../../ec-canvas/ec-canvas"}}ts/js引入echa......
  • CF903E Swapping Characters
    CF903E:一个复杂度较优的做法首先对于题目情况分类讨论一下,整理出2种主要情况:即分别有3,4个位置不同,对于具体情况直接模拟即可。为什么两个位置不同不行呢?因为无法保证......
  • Python量化中用pyecharts画K线示例
    首先需要安装Python软件,以及pyecharts库相关教程链接:龙哥量化:文档目录(股票,期货,通达信、同花顺、文华等软件使用,Python量化交易,策略编写,学习文档,策略案例等等) 1"""......
  • pycharm中格式标准化代码
    点击之后,可以使代码标准化 ......
  • pycharm如何自定义模板?
    按照上图箭头方向设置即可. ......
  • 在 iOS 16 中用 SwiftUI Charts 创建一个折线图
    前言苹果在WWDC2022上推出了SwiftUI图表,这使得在SwiftUI视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了......