如何让 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 中具有特定的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Qt 5.5.1 在调试器中查看 QString 值

在QT中如何将double转换为Qstring

Qt的QString中储存汉字,如何查看汉字的编码

如何在Qt Designer中限制布局的增长(大小)?

QT中关于QString用法

如何在 qt creator 中将 QString 转换为 int