如何让 QString 在 QT 中具有特定的大小?
Posted
技术标签:
【中文标题】如何让 QString 在 QT 中具有特定的大小?【英文标题】:how to have make a QString have a specific size in QT? 【发布时间】:2019-04-17 14:48:29 【问题描述】:我的问题是,我将有一个QString val
,它将在那里获得不同的值。但我希望所有结果都有固定数量的字符,例如 20。
所以如果我放的单词少于那个字符数,它会在右边放空格。
举个例子,假设我有两个词:"abc"
和 "abcdefghijklmno"
对于first case
:
qDebug()<<val; //"abc "
对于second case
:
qDebug()<<val; //"abcdefghijklmno "
怎么办?
【问题讨论】:
【参考方案1】:使用可以使用QString::resize
。它需要大小和填充字符:
val.resize(20,' ');
qDebug() << val;
【讨论】:
【参考方案2】:您可以使用以下方法
qDebug() << QString("%1").arg(yourStringVar, fieldWidth, QChar('fillEmptySpaceChar'));
在你的例子中可能是
qDebug() << QString("%1").arg(val, 32, QChar(' '));
要使填充字符从右侧填充,只需使用以下
qDebug() << QString("%1").arg(val, -32, QChar(' '));
【讨论】:
太棒了,但是怎么把空格加到右边呢? 改用否定的fieldWidth
【参考方案3】:
或者您使用专门为此目的创建的函数QString::leftJustified()
/ QString::rightJustified()
:
qDebug() << val.leftJustified(20, /*QChar fill=*/QLatin1Char(' '), /*bool truncate=*/false);
这也让您可以选择在输入字符串长于固定宽度时如何处理。
【讨论】:
以上是关于如何让 QString 在 QT 中具有特定的大小?的主要内容,如果未能解决你的问题,请参考以下文章