QT中QString转const char *的问题

原创 2013年12月04日 09:34:36

        最近一直在用QT,但是学的还不够深入,今天遇到了一个问题,在此记录下来,以便以后查阅:

        事情是这样的:在界面中的QLineEidt里面输入一串地址数据,在代码里把它读取过来,然后去访问这个地址,但是通过QLineEdit的text()方法读取到的数据时QString类型的,而访问地址函数的这个参数类型是const char*的,这就需要把QString转化为const char*类型,我在网上搜了下,先使用toAscii()转化为一个QByteArray类型对象,然后再调用它的data()或constData()函数即可。这里我用了constData()函数。即:

               QLineEdit  *aLineEdit = new  QLineEdit();

               const char * tagName  =  aLineEdit->text().toAscii().constData();

               qDebug()<<"---------调试-------"<<tagName<<endl;

此时,输出的事乱码。而如果我这样写(直接打印,不去定义一个const char* 变量):

               //前面语句一样

               qDebug()<<"---------调试-------"<<aLineEdit->text().toAscii().constData()<<endl; 

就可以正确打印出来。

               

            目前,我还不知道这是什么原因,先记录之,以供参考。


“QT中QString 转const char*为乱码或为空的问题 ”之解决方案

接着前篇:http://blog.csdn.net/bzhxuexi/article/details/17111903 在前篇中遇到了一个问题,当时没解决,今天终于找到了解决方法,我在网上看到了这样...

QString与char *之间的转换

1.QString转char * 先将QString转换为QByteArray,再将QByteArray转换为char *。 注意:不能用下面的转换形式char *mm = str.toLatin...

Qt QString类型 转换为 const char*

调用函数open(参数1,参数2) 参数1要求为const*char

QString,const char*,char*相互直接转换方法

QString,const char*,char*相互直接转换方法
  • jh1513
  • jh1513
  • 2016年10月31日 16:26
  • 1529

char * /const char */unsigned char * 转换

----------------------------------------------------------------------------------- BYTE bArray[16]...

【Qt开发】几个傻不拉几关于char*和const char*的不兼容问题

转自:http://blog.163.com/reviver@126/blog/static/1620854362012118115413701/ 重回Linux,太多地方需要用到这三种类型的转...

Qt5中char*和QString的互转问题

1.char *转换成QString (1)如果char*中没有中文字符,那么转换的时候,非常的简单。 char *ch = "abcd"; QString strzw(ch); strzw =...

Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题

代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的。如下程序中 #define DD 1的情况下;但是如果设置了全局的utf-8,再用以前的方法: QByteArra...

【转】Qt中的QString,QByteArray,Qchar, char*

先要说的是QString。       之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int...
  • kbwzy
  • kbwzy
  • 2016年06月15日 00:01
  • 1074

Qt中将QString转换为char *或者相反

1.将QString转换为std::string,可以通过QString的成员函数toStdString() QString Qstr="123";std::string str=Qstr.to...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QT中QString转const char *的问题
举报原因:
原因补充:

(最多只允许输入30个字)