串口接受到的数据读取出来是QByteArray,将它以十六进制显示在LineEdit中。
共有三种形式
- 形式一:显示十六进制的格式
收到字符“123”,显示为0x31, 0x32, 0x33
- 形式二:只显示十六进制的数字
收到字符“123”,显示为313233
- 形式三:显示字符
收到字符“123”,显示为123
QString disp_string,S;
QByteArray readComData = serialPort->readAll();
//形式一:显示十六进制的格式
if(ui->checkBox_Hex_disp->isChecked()&&ui->checkBox_add_char->isChecked())
{
for(int i=0;i<readComData.size();i++)
{
S.sprintf("0x%02x, ", (unsigned char)readComData.at(i));
disp_string += S;
}
ui->textEdit_Receive->insertPlainText(disp_string);
}
else
//形式二:只显示十六进制的数字
if(ui->checkBox_Hex_disp->isChecked())
ui->textEdit_Receive->insertPlainText(readComData.toHex());
else
//形式三:显示字符
ui->textEdit_Receive->insertPlainText(readComData);
ui->textEdit_Receive->moveCursor(QTextCursor::End);