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, где ширина поля применяется только к следующему элементу.
Поэтому вам нужно сбросить ширину поля до нуля, прежде чем вывести символ "%".