У меня должно быть много QLineSeries в моем QChart. Но высоты QChartView недостаточно, чтобы разместить QLegendMarker для всех из них, поэтому я могу видеть некоторые первые маркеры и не имею никакого контроля, чтобы видеть других.
И я не знаю, как сделать легенду прокручиваемой.
Я могу отсоединить легенду от диаграммы, но не могу поместить ее в QScrollArea (чего-то еще), потому что это не класс QWidget. Также такое решение в любом случае будет временным исправлением.
#include <QApplication>
#include <QtCharts>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QChartView charView;
QChart chart;
charView.setChart(&chart);
for(int i=0; i<20; ++i) {
QLineSeries *series = new QLineSeries(&chart);
for(int x=0; x<30; ++x) {
series->append(x, qrand()%10+i*10);
}
series->setName(QString("testLine_%1").arg(i));
series->setColor(QColor(qrand()%255,qrand()%255,qrand()%255));
chart.addSeries(series);
}
chart.createDefaultAxes();
auto l = chart.legend();
if(l)
l->setAlignment(Qt::AlignRight);
charView.show();
return a.exec();
}