The Problem:
I have a plot with controls for changing the scale (linear vs log) and for changing the min X and the max X values, then replot. But the code only works well on Mac OS, and not in Linux!
I start out with:
calibPlot->replot();
calibPlot->setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine () );
calibPlot->replot();
To copy to clipboard, switch view to plain text mode
Then I call the control buttons: using a function: setupGraphControls();
In the function I define the controls, and connect them to corresponding SLOTS:
connect( axisXScale,
SIGNAL( activated
( const QString &)),
this,
SLOT(xAxisScaleChange
( const QString &) ) );
connect( axisXStart,
SIGNAL( textChanged
( const QString & )),
this,
SLOT(xAxisScaleMin
( const QString & ) ) );
connect( axisXEnd,
SIGNAL( textChanged
( const QString &)),
this,
SLOT(xAxisScaleMax
( const QString &) ) );
connect( axisXScale, SIGNAL( activated( const QString &)),
this, SLOT(xAxisScaleChange( const QString &) ) );
connect( axisXStart, SIGNAL( textChanged ( const QString & )),
this, SLOT(xAxisScaleMin( const QString & ) ) );
connect( axisXEnd, SIGNAL( textChanged( const QString &)),
this, SLOT(xAxisScaleMax( const QString &) ) );
To copy to clipboard, switch view to plain text mode
The slots are coded as (one example):
void CentralPage
::xAxisScaleMin( const QString &xMinVal
) {
bool ok;
const bool doReplot = calibPlot->autoReplot();
calibPlot
->setAxisScale
(QwtPlot::xBottom, xMinVal.
toInt(&ok,
10),axisXEnd
->text
().
toInt(&ok,
10) );
calibPlot->setAutoReplot( doReplot );
calibPlot->replot(); }
}
void CentralPage::xAxisScaleMin( const QString &xMinVal)
{
bool ok;
const bool doReplot = calibPlot->autoReplot();
calibPlot->setAxisScale(QwtPlot::xBottom, xMinVal.toInt(&ok,10),axisXEnd->text().toInt(&ok,10) );
calibPlot->setAutoReplot( doReplot );
calibPlot->replot(); }
}
To copy to clipboard, switch view to plain text mode
In the connection statements, should I be using something else in place of "this" ? Has anyone else seen this issue, I use qwt-5.2.0.
Any more elegant ways of doing this?
// Sal Aguinaga
// Northwestern University
Bookmarks