18.09.2019, 16:59, "Jason H" <[email protected]>:
>>  Sent: Wednesday, September 18, 2019 at 2:50 PM
>>  From: "Giuseppe D'Angelo via Interest" <[email protected]>
>>  To: [email protected]
>>  Subject: Re: [Interest] QByteArray vs QString, arg, why is there no arg()?
>>
>>  Il 18/09/19 13:16, Jason H ha scritto:
>>  > What's the best way to zero-pad a QByteArray?
>>  > What I want is QByteArray("%1").arg(6, 10, 10, '0')
>>
>>  Mostly it has to do with the fact that QByteArray is sitting between two
>>  worlds; on one side it's just a container of bytes, on the other side it
>>  has _some_ manipulation functions for ASCII-like strings. "Some"
>>  because, as you've noticed, stuff like the arg() convenience is missing.
>>
>>  If you really need a QByteArray you can work around this by e.g. using a
>>  printf-like function, what you're looking for is the "%010d" formatting.
>>
>>  Pseudocode:
>>
>>  int n = 123;
>>  const char *format = "The number is %010d";
>>  auto size = qsnprintf(nullptr, 0, format, n);
>>
>>  QByteArray result(size, Qt::uninitialized);
>>  qsnprintf(result.data(), result.size(), format, n);
>
> That helps, but wasn't the answer I wanted to hear. I have to call 
> qsnprintf() twice. Granted, for valid reasons.and it might be faster than my 
> gluing things together with +.

Gluing things together with + in a single expression is probably faster than 
using arg() if you build your sources with -DQT_USE_QSTRINGBUILDER (or use 
operator % instead of + if you don't)

>
> I do prefer python's approach where the character size change does not come 
> with an API change. Maybe discussion for Qt6?. I would think they C++ way 
> would be to have 1 API and a template class? (Though I think some people 
> cringe at that idea)
> _______________________________________________
> Interest mailing list
> [email protected]
> https://lists.qt-project.org/listinfo/interest

-- 
Regards,
Konstantin

_______________________________________________
Interest mailing list
[email protected]
https://lists.qt-project.org/listinfo/interest

Reply via email to