QT中QString轉const char *的問題

bzhxuexi發表於2013-12-04

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

就可以正確列印出來。

               

            目前,我還不知道這是什麼原因,先記錄之,以供參考。


相關文章