QTextStream проблема с фиксированной точкой форматирования

У меня проблема с форматированием QTextStream. Я использую код ниже, чтобы напечатать процент от quint8, и это, кажется, дает мне пробел между числом и десятичной точкой. Например, я получу "50%" вместо "50%" и "100%" вместо "100%".

В чем моя проблема?

QString retVal;
QTextStream retStream(&retVal);
retStream.setRealNumberNotation(QTextStream::FixedNotation);
retStream.setRealNumberPrecision(0);
retStream << qSetFieldWidth(2)
          << (100*((float)myQuint8)/255.0) << "%";
return retVal;

1 ответ

От QTextStream::setFieldWidth документация

Примечание. Ширина поля применяется к каждому элементу, добавляемому к этому потоку после вызова этой функции (например, он также заполняет endl). Это поведение отличается от аналогичных классов в STL, где ширина поля применяется только к следующему элементу.

Поэтому вам нужно сбросить ширину поля до нуля, прежде чем вывести символ "%".

Другие вопросы по тегам