如何格式化或本地化 QValueAxis?

问题描述

在我的应用程序中,所有数字都以逗号分隔的格式显示,例如"123345" => "123,345"。为此,我使用此功能:

QString commaSeperated(const long long &n)
{
   QString formatted = QLocale(QLocale::English).toString(n);
   return formatted;
}

我的问题是我无法为 QValueAxis 设置该格式。我尝试本地化图表,格式化轴,但这些都没有帮助。有什么想法吗?

对于可重现的代码,我举了这个例子。您可以看到 Y 轴范围设置为 4 位数字。你能把它格式化为逗号分隔吗?

#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QSplineSeries>
#include <QValueAxis>

QT_CHARTS_USE_NAMESPACE

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);

    QSplineSeries *series = new QSplineSeries();
    series->setName("spline");
    series->append(0,1006);
    series->append(2,1004);
    series->append(3,1008);
    series->append(7,1004);
    series->append(10,1005);
    *series << QPointF(11,1001) << QPointF(13,1003) << QPointF(17,1006) << QPointF(18,1003) << QPointF(20,1002);

    QChart *chart = new QChart();
    chart->legend()->hide();
    chart->addSeries(series);
    chart->setTitle("Simple spline chart example");

    QValueAxis *axisX = new QValueAxis(chart);
    axisX->setRange(0,12);
    axisX->setLabelFormat("%d");

    QValueAxis *axisY = new QValueAxis(chart);
    axisY->setRange(1000,1012);
    axisY->setLabelFormat("%d");

    chart->addAxis(axisX,Qt::AlignBottom);
    chart->addAxis(axisY,Qt::AlignLeft);

    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);

    QMainWindow window;
    window.setCentralWidget(chartView);
    window.resize(400,300);
    window.show();

    return a.exec();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...