【问题标题】:how to have make a QString have a specific size in QT?如何让 QString 在 QT 中具有特定的大小?
【发布时间】:2019-04-17 14:48:29
【问题描述】:

我的问题是,我将有一个QString val,它将在那里获得不同的值。但我希望所有结果都有固定数量的字符,例如 20。

所以如果我放的单词少于那个字符数,它会在右边放空格。

举个例子,假设我有两个词:"abc""abcdefghijklmno"

对于first case

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

对于second case

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

怎么办?

【问题讨论】:

    标签: c++ qt c++11


    【解决方案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);
      

      这也让您可以选择在输入字符串长于固定宽度时如何处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多