将 QStringList
转换为 QByteArray
的最有效方法是什么?
我发现了许多类似转换的例子,但从来没有我需要的例子,或者只是不必要地太复杂了。
代码清理字符串输入,然后将其转换为 QByteArray
。我正在为后半部分苦苦挣扎。
void MainWindow::on_suicideButton_clicked()
{
QString input = ui->lineEdit->text();
try{
if(ui->lineEdit->text().contains("0x")||ui->lineEdit->text().contains(",")||ui->lineEdit->text().contains("-"))
{
input = input.replace("0x","");
if (input.contains(',')) input = input.replace(",", "");
// QString trim = input.trimmed();
// input = trim;//.split(',', ' ', '-');
QStringList inputArray = input.split('-');
QByteArray output = inputArray;
}
//printf("%s\n", input);
ui->lineEdit->setText(input);
}
catch (const std::bad_alloc &) {input = " ";}
}
QStringList inputArray = input.split('-');
很重要(或者至少我认为如此),因为我需要将字节拆分为单独的 block 以便对它们执行各种操作。
这里是一个例子,为了让你看到我想做什么样的操作:
char MainWindow::checkSum(QByteArray &b)
{
char val = 0x00;
char i;
foreach (i, b)
{
val ^= i;
}
return val;
}
最佳答案
用一个 QDataStream 来序列化字符串列表怎么样?
// Fill the data buffer
QByteArray data;
QStringList list{"foo", "bar", "foobar"};
QDataStream dataStreamWrite(&data, QIODevice::WriteOnly);
dataStreamWrite << list;
// Do whatever you want with the raw data
// And if you want to convert it back to a QStringList
QDataStream dataStreamRead(data);
QStringList list2;
dataStreamRead >> list2;
关于c++ - Qt - QStringList 到 QByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759371/