QCustomPlot轴上的自定义格式编号

时间:2017-12-29 15:44:08

标签: qt qcustomplot

我想在QCustomPlot的轴上设置数字的格式。我知道如何处理小数精度,但不知道如何在大数字的情况下使用空格而不是逗号。

我希望数字看起来像这样:

1.045   (decimals separated with a dot)
1 000  (thousands separated with space, currently I get 1,000)

有一个方法QCPAxis :: setNumberFormat,这似乎不是我想要的。

1 个答案:

答案 0 :(得分:1)

您需要继承QCPAxisTicker并重新实现getTickLabel方法

我找不到将空格作为组分隔符并将点作为小数点的区域设置,因此我使用QString替换函数来制作“自定义分隔符”。

快速而肮脏的例子:

QString getTickLabel (double tick, const QLocale &locale, QChar formatChar, int precision) {
    QLocale l;
    QString number = l.toString(tick, 'g', 15);
    number.replace(l.decimalPoint(), ".");
    number.replace(l.groupSeparator(), " ");

    return number;
}

输入:

1000000.1411

输出:

"1 000 000.1411"