QT中QString转const char *的问题

来源:互联网 发布:大数据世界 编辑:程序博客网 时间:2024/05/19 02:44

        最近一直在用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; 

就可以正确打印出来。

               

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


原创粉丝点击