我有这样的代码片
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'));