Как заставить QString иметь определенный размер в QT? - PullRequest
0 голосов
/ 17 апреля 2019

Моя проблема в том, что у меня будет QString val, который получит разные значения там. Но я хочу, чтобы у всех результатов было фиксированное количество символов, например 20.

Так что, если слово, которое я произнесу, будет меньше, чем число символов, оно оставит пробелы справа.

Например, предположим, у меня есть 2 слова: "abc" и "abcdefghijklmno"

для first case:

qDebug()<<val; //"abc "

для second case:

qDebug()<<val; //"abcdefghijklmno "

как это можно сделать?

Ответы [ 3 ]

3 голосов
/ 17 апреля 2019

Использование можно использовать QString::resize.Требуется размер и символ заполнения:

val.resize(20,' ');
qDebug() << val;
1 голос
/ 24 апреля 2019

Или вы используете функции QString::leftJustified() / QString::rightJustified(), созданные специально для этой цели:

qDebug() << val.leftJustified(20, /*QChar fill=*/QLatin1Char(' '), /*bool truncate=*/false);

Это также позволяет вам выбрать, как поступить, если ваша входная строка длиннее фиксированной ширины.

1 голос
/ 17 апреля 2019

Вы можете использовать следующий подход

qDebug() << QString("%1").arg(yourStringVar, fieldWidth, QChar('fillEmptySpaceChar'));

в вашем примере это может быть

qDebug() << QString("%1").arg(val, 32, QChar(' '));

для того, чтобы сделать символы для заполнения справа, просто используйте следующее

qDebug() << QString("%1").arg(val, -32, QChar(' '));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...