我正在创建一个QChart条形图。我有一个以前未知的QBarSets数量(我知道运行时的QBarSets数量-但可能在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));
}其他所有内容几乎都与所描述的here相同。
我的问题是,每个条形都变得非常非常小。我想用固定的宽度绘制每个条形图,并可能使用水平滚动条来滚动类别。
有没有人有一个很小的例子可以做到这一点?
发布于 2018-01-03 22:39:32
事实证明答案很简单。您可以非常简单地使用以下命令对QBarCategoryAxis进行grep
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)。
https://stackoverflow.com/questions/48062390
复制相似问题