0

我正在创建一个 QChart 条形图。我有一个以前未知的 QBarSet 数量(我知道运行时 QBarSet 的数量 - 但可能在 1-10 之间)和一个可能大量的类别(10-1000)。

QVector<QBarSet*> barSets; 
for(int i=0; i<n; ++i){ // n between 1-10
    QBarSet *set = new QBarSet("");
    for(int j=0; j<m; ++j){ // m between 1-1000
        *set << someValue;
    }
    barSets.push_back(set);
}
QBarSeries* series = new QBarSeries();
for(int i=0; i<barSets.count(); ++i){
    series->append(barSets.at(i));
}

其他一切与此处描述的几乎相同。

我的问题是每个酒吧都变得非常非常小。我想以固定宽度绘制每个条形图,并可能使用水平滚动条来滚动类别。

有人有一个小例子如何做到这一点吗?

4

1 回答 1

0

原来答案很简单。您可以非常简单地使用 grep QBarCategoryAxis

auto axis = qobject_cast<QBarCategoryAxis*>(chart->axisX());

然后简单地按名称控制可见类别

auto categories = axis->categories();
QString min = categories.at(n);
QString max = categories.at(m);
axis->setMin(min);
axis->setMax(max);

我已经使用该horizontalScrollBar_valueChanged信号来更改最小和最大类别数(n, m)。

于 2018-01-03T14:39:32.493 回答