#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"