у меня есть такой кусок кода
QString day= ui->direct_pow_lineEdit_1->text();
QString hour = ui->direct_pow_lineEdit_2->text();
QString minute = ui->direct_pow_lineEdit_3->text();
QString destIP = QString("010.000.000.001");
QString data_to_transfer = QString("450%1015%2%3%4").arg(day,2).arg(destIP).arg(hour,2).arg(minute,2);
то, что я хотел бы иметь, является Qt-эквивалентом sprintf(data_to_transfer, "450%02s015%s%02s%02s", day, destIP, hour, minute )
, но
QDebug deb = qDebug();
deb << data_to_transfer;
выходы
450 215 1010.000.000.001 1
как я могу правильно изменить QString, и я не хочу удалять пробелы между переменными?
ИЗМЕНИТЬ:
пробелы связаны со значением по умолчанию, если я определяю .arg(day,2,'0')
, то он заполняется 0 вместо пробела. однако, если пробела нет, QString не редактируется должным образом. Например
`QString data_to_transfer = QString("450%1015%2").arg(day, 2, '0').arg(destIP, 2, '0');`
выводит "450010.000.000.0011531", где день равен 31
РЕШЕНИЕ:
Это решило мою проблему, но я был бы признателен за лучшее решение.
QString data_to_transfer = QString("450%1").arg(day,2,'0');
data_to_transfer.append("015");
data_to_transfer.append(destIP);
data_to_transfer.append(QString("%1").arg(hour,2,'0'));
data_to_transfer.append(QString("%1").arg(minute,2,'0'));