Как я могу сделать прокрутку QLegend? - PullRequest
0 голосов
/ 10 января 2019

У меня должно быть много 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();
}
...