Как поместить QString с пробелами?

Как я могу поместить QString с пробелами в конце?

Например, я хочу, чтобы в QString было всего 4 символа, и это всего лишь 1 символ. Я хотел бы, чтобы последние 3 были пробелами.

Ответ 1

Как ни странно, существует функция специально для того, что называется QString::leftJustified

http://doc.qt.io/qt-4.8/qstring.html#leftJustified

Итак, paddedString = originalString.leftJustified(4, ' '); выполнит трюк.

(Обратите внимание, что вы также можете усечь строку, если она больше, чем ограничение вашего символа, передав третий параметр true.)

Ответ 2

Вы также можете использовать перегрузку QString:: arg(), которая принимает параметр ширины поля. Значение ширины поля - это общее количество желаемых символов, а не размер заполнения. Вам нужно использовать отрицательное значение ширины поля для левого дополнения, положительное для правильного заполнения

QString QString::arg(const QString & a, 
        int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ))

Наиболее полезно при форматировании стиля printf, например.

QString("%1: %2 - %3").arg("a", -4).arg(2).arg(10);

дает "a :2 - 10"