如何在 QtCharts 小部件中的刻度之间绘制条形?

问题描述 投票:0回答:1

我正在尝试使用 QtCharts 创建条形图。我想要一个数值的水平轴,并且我的条形图显示在刻度之间。然而,与 QBarCategoryAxis 的情况不同,QBarCategoryAxis 的标签将集中在条形上(每个条形代表一个类别),QValueAxis 的行为是将条形集中在刻度中。

    QBarSet *set0 = new QBarSet("Dummy");
    int dummy_value = 5;
    *set0 << dummy_value
          << dummy_value + 2
          << dummy_value + 4;

    QStackedBarSeries *series = new QStackedBarSeries();
    series->append(set0);
    series->setBarWidth(1.0);

    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setTitle("Dummy");

    QValueAxis* y_axis = new QValueAxis();
    chart->addAxis(y_axis, Qt::AlignLeft);
    y_axis->setRange(0, 10);
    y_axis->setTickCount(6);
    y_axis->setLabelFormat("%i");
    y_axis->setVisible(true);
    series->attachAxis(y_axis);

    QValueAxis* x_axis = new QValueAxis();
    chart->addAxis(x_axis, Qt::AlignBottom);
    x_axis->setRange(0, set0->count());
    x_axis->setTickCount(set0->count() + 1);
    x_axis->setLabelFormat("%d");
    x_axis->setVisible(true);
    series->attachAxis(x_axis);

    chart->legend()->setVisible(true);
    chart->legend()->setAlignment(Qt::AlignBottom);

有谁知道一个好的解决方案,可以在刻度之间显示条形,同时将标签显示在刻度上而不是集中在条形上?

c++ user-interface qt5 qt-creator qtcharts
1个回答
0
投票

我通过抑制该行得到了我想要的行为

series->attachAxis(x_axis);
© www.soinside.com 2019 - 2024. All rights reserved.