我是Qt的新手。 我试图拆分带有空格的六角形字符串,以便发送到串口
这是代码:
\Illuminate\Http\Request
分裂是好的,但我不知道我应该把它放在for循环中
请你的建议
答案 0 :(得分:1)
为什么不使用$("#ben-count-submit").click(function (event) {
event.preventDefault();
});
或QString::toAscii()
(Qt5)?它会为您提供QString::toLatin1()
。
答案 1 :(得分:1)
无需拆分十六进制编码数据,只需使用QByteArray::fromHex
:
QString sometext = ui->txtDataToSend->toPlainText();
QByteArray ba = QByteArray::fromHex(sometext.toLatin1());
如果您的十六进制数据无效,例如一个字节只用一个十六进制编码而没有第一个' 0'或多于两个字符,请使用QString::toUInt循环:
QByteArray ba;
QString sometext = ui->txtDataToSend->toPlainText();
QStringList query = sometext.split(QRegExp("\\s"));
ba.resize(query.size());
for (int i=0,j=0; i < query.size();i++) {
bool ok;
ba[j] = query[i].toUInt(&ok,16); // convert hex number to byte
if(ok) j++; // if invalid number we will skip
}
ba.resize(j);
serial->write(ba);
这将解释十六进制字符串&#34; 12 3 4567 F0 F&#34;与&#34; 12 03 67 F0 0F&#34;。
相同