Qwt Plot: как уменьшить расстояние между элементами легенды - PullRequest
0 голосов
/ 08 октября 2018

Я считаю, что расстояние между строками в легенде о сюжете Qwt довольно велико.Я хотел бы добавить больше элементов в легенду без необходимости прокрутки и без увеличения размера легенды.

Есть ли способ уменьшить или удалить расстояние между элементами в легенде?

РЕДАКТИРОВАТЬ:

Вот что я получаю

И вот что я хочу

Вот пример кода, показывающего, как я добавляю кривые к графику, которые затем отображаются в легенде.Он точно не воспроизводит приведенный выше сюжет, но показывает принцип:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QwtPlot* plot = new QwtPlot(this);
    setCentralWidget(plot);

    // Add curves
    for(int i=0; i<15; i++){
        QwtPlotCurve *curve = new QwtPlotCurve( "Curve " + QString::number(i) );
        curve->attach( plot );
        curve->setPen( Qt::blue, 2 );
        curve->setLegendAttribute( QwtPlotCurve::LegendShowLine );
    }

    // Add legend
    QwtLegend *legend = new QwtLegend();
    legend->setDefaultItemMode(QwtLegendData::Clickable); // make items clickable
    connect(legend, SIGNAL(clicked(const QVariant &, int)), this, SLOT(onLegendItemClicked(const QVariant &,int)) );        
    plot->insertLegend( legend, QwtPlot::LeftLegend );
}

Если я уберу строку

legend->setDefaultItemMode(QwtLegendData::Clickable);

, расстояние между элементами легенды немного уменьшится (все еще нетуменьшается настолько, насколько я хочу), но тогда при нажатии на элемент сигнал «нажал» (...) не выдается.

Есть идеи, как уменьшить интервал без потери кликабельности?

...