做串口通信時,碰到這樣的問題,在Qt的界面中,我用QLineEdit對象負責顯示發送和接收的文本,對其中的數據進行讀取和顯示使用的數據類型都是QString;但是,在對串口設備進行讀寫時,數據使用的形式都是char型指針(不知道是不是我理解的不透徹),所以就要解決QString和char型數組之間的轉換。
查閱了一些資料,並經過自己的驗證,找到了下面的解決辦法:
1、char型數組或字符串指針轉換成QString
char str_data[512];
QString qs_data;
............
qs_data = QString::fromLocal8Bit(str_data,512); //當然也可以用強制類型轉換QString(str_data)
2、QString類型轉換為 char指針類型
const char * str_data; //這里一定要加上const,否則會報錯!
QString qs_data;
...........
str_data = qs_data.ascii();
這里我只給出了一種轉換方法,並經過我的驗證是可以使用的。其實還有很多辦法可以實現轉換,並可能比這個簡單很多,大家可以嘗試下!
這里給希望深入學習Qt的朋友介紹個很好的網站,自己感覺很受用,可能很多人都知道這個網址:http://doc.trolltech.com/3.3/index.html