如何用空格填充 QString?
Posted
技术标签:
【中文标题】如何用空格填充 QString?【英文标题】:How do I pad a QString with spaces? 【发布时间】:2011-11-09 17:57:39 【问题描述】:如何在 QString 的末尾填充空格?
例如,我希望 QString 总共有 4 个字符,并且它只有 1 个字符长。我希望最后 3 个是空格。
【问题讨论】:
QString foo( "1" ); foo += QString( 3, ' ' );
作为一个更一般的答案(而不是仅仅说 RTFM),如果您查看 Qt documentation 下的 QString class reference 并在文本“pad”上进行搜索找到function below。
【参考方案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"
【讨论】:
以上是关于如何用空格填充 QString?的主要内容,如果未能解决你的问题,请参考以下文章