問題描述:
如上圖所示 QlineEdit 中有8個數據,每個數據想去存放一個char 的數組,或者你想輸入16進制的數據,接下來我們該如何解決這個問題呢?
首先我們獲取ui中的文本內容:
uchar array[9] ={"\0"};
QString text = ui->line_Data->text();
這個時候獲取的text爲 “01 02 03 04 05 06 07 08”;
我們想把 01 做爲char 數組中的一個數據,首先我們要得到你要寫的數據量:
int length = text.size()/3 +1;
這樣我們就獲得了length數據爲8.
然後我們使用一個循環把下面寫完整:
for(int i = 0; i<length; i++)
{
if(ok)
{
array[i] = (uchar) text.mid(i+3,2).toUInt(&ok,16);
}
else {
QMessageBox::critical(this,"數據錯誤","請寫入16進制的數據");
return;
}
}
首先,我們用QString 中 mid函數,mid作用是截取數據,第一個數就是 0到2,第二個數 3到5,然後我獲取的數據轉換成uint,用16進制轉換。 因爲QString 中沒有tochar,哈哈,這樣數據就轉換成功了,然後呢可以對數據解析,或者發送了。