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

#c #qt #qt4

#c #qt #qt4

Вопрос:

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

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

Комментарии:

1. QString foo( "1" ); foo = QString( 3, ' ' );

2.В качестве более общего ответа (и не прибегая к простому использованию RTFM), если вы заглянете в документацию Qt под ссылкой на QString и выполните поиск по тексту «pad», то будет найдена функция, приведенная ниже, — «pad».

Ответ №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 amp; a, 
        int fieldWidth = 0, const QChar amp; fillChar = QLatin1Char( ' ' ))
  

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

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

дает "a :2 - 10"