【发布时间】:2023-03-28 03:25:01
【问题描述】:
我遇到的一个奇怪的事情是,在我正在执行的循环中,我用 QStringList 的块填充 QByteArray。更准确地说,QStringList 采用标准的QString 并在每次遇到字符串中的“-”时将其拆分为更小的位。因此,如果QString 包含"A1-B2-C3-D4-E5",它会将列表填充为小块(list[0]="A1",list[1]="B2",list[2]="C3",...)。但是,我需要这些字节来填充QByteArray,当我使用循环时,它只需要它的字符并将QByteArray 填充为bytearray[0]="A",bytearray[1]="1",bytearray[2]="2" 等等。考虑到我正在使用的代码,我想知道发生了什么错误?
代码如下:
QStringList inputArray = input.split('-');
QByteArray output;
for(int i = 0; i < inputArray.count(); i++)
{
output.append(inputArray.at(i).toLatin1());
}
ui->lineEdit->setText(output);
【问题讨论】:
-
你的问题——至少对我来说——非常不清楚。所发布的代码完全符合我的预期,导致
output等同于QByteArray("A1B2C3D4E5")。 -
I am wondering what wrong has happened?你和其他人。 -
我想要做的是完整地添加字节位 - 目前我有像这样填充的 QByteArray bytearray[0]="A",bytearray[1]="1 ",bytearray[2]="B",而我需要它包含其完整值,即 bytearray[0]="A1",bytearray[1]="B2",bytearray[2]="C3"。
-
听起来你真的想要一个
QByteArrayList,而不是一个简单的QByteArray。 -
好吧,不想打扰你,但是一个字节就是一个字符。现在,如果您的 char 对仅包含十六进制符号,即 0-9 和 A-F,您可以将它们转换为字节,因为它们可以容纳在一个字节中。
标签: arrays list qt append qbytearray