如何使QLegend可滚动?

时间:2019-01-10 09:37:35

标签: qt qtchart

我的QChart中必须有很多QLineSeries。但是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();
}

0 个答案:

没有答案