关闭

QT中QString转const char *的问题

标签: QTQStringconst char转化问题
1913人阅读 评论(0) 收藏 举报
分类:

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

就可以正确打印出来。

               

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:638555次
    • 积分:7087
    • 等级:
    • 排名:第3400名
    • 原创:23篇
    • 转载:295篇
    • 译文:0篇
    • 评论:32条
    技术连接
    1、stackoverflow:http://stackoverflow.com/ 2、何登成的技术博客:http://hedengcheng.com/?p=828