QTabWidget* ResultsPage::createDataTabWidget() { QTabWidget *tabWidget = new QTabWidget; // Plot m_plot = new QwtPlot(tabWidget); m_plot->setCanvasBackground(Qt::white); m_plot->setContextMenuPolicy(Qt::CustomContextMenu); m_plot->setAutoReplot(false); connect(m_plot, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showPlotContextMenu(QPoint))); // Picker to allow for selection of the closest curve and displays curve // coordinates with a cross rubber band. QwtPlotPicker *picker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft, QwtPicker::CrossRubberBand, QwtPicker::ActiveOnly, m_plot->canvas()); picker->setStateMachine(new QwtPickerDragPointMachine()); connect(picker, SIGNAL(appended(QPoint)), this, SLOT(pointSelected(QPoint))); // Legend QwtLegend* legend = new QwtLegend; legend->setFrameStyle(QFrame::Box | QFrame::Sunken); m_plot->insertLegend(legend, QwtPlot::BottomLegend); #if QWT_VERSION >= 0x060100 connect(m_plot, SIGNAL(legendDataChanged(QVariant,QList<QwtLegendData>)), legend, SLOT(updateLegend(QVariant,QList<QwtLegendData>))); #endif // Add the generic curves to the legend QList<QPair<QString, Qt::GlobalColor> > pairs; pairs << qMakePair(tr("Unselected Realization"), Qt::darkGray) << qMakePair(tr("Selected and Enabled Realization"), Qt::darkGreen) << qMakePair(tr("Selected and Disabled Realization"), Qt::darkRed); QPair<QString, Qt::GlobalColor> pair; foreach (pair, pairs) { QwtPlotCurve *curve = new QwtPlotCurve(pair.first); curve->setLegendIconSize(QSize(32, 8)); curve->setPen(QPen(QBrush(pair.second), 2)); curve->setLegendAttribute(QwtPlotCurve::LegendShowLine); #if QWT_VERSION < 0x060100 curve->updateLegend(legend); #else m_plot->updateLegend(curve); #endif }
/* void MyPlot2D::toggleCurve(long curveId) { QwtPlotCurve *c = curve(curveId); if ( c ) { c->setEnabled(!c->enabled()); replot(); } } */ void MyPlot2D::enableLegend(bool value) { if (value) { // legend QwtLegend *legend = new QwtLegend; legend->setFrameStyle(QFrame::Box|QFrame::Sunken); this->insertLegend(legend, QwtPlot::RightLegend); } else { this->insertLegend(NULL); } replot(); }
PowerBarHistoryPlot::PowerBarHistoryPlot(double defaultTime, double defaultPowerLevel, QWidget* parent) : QWidget(parent) , m_overalTime(0.0) , m_lastSampleTime(0.0) , m_firstTime(true) , m_defaultTime(defaultTime) , m_defaultPowerLevel(defaultPowerLevel) , m_powerAxisMax(defaultPowerLevel) , m_powerAxisMin(-1*defaultPowerLevel) , m_timeAxisMax(defaultTime) { m_plot = new QwtPlot(); m_plot->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_plot->setAxisScale(QwtPlot::xBottom, 0, defaultTime, defaultTime/20.0); m_plot->setAxisScale(QwtPlot::yLeft, -1 * defaultPowerLevel, defaultPowerLevel, defaultPowerLevel/2.0); m_plot->setAxisAutoScale(QwtPlot::xBottom, false); m_plot->setCanvasBackground(QBrush(Qt::white)); m_plot->setAxisTitle(QwtPlot::xBottom, tr(TIME_AXIS_NAME)); m_plot->setAxisTitle(QwtPlot::yLeft, tr(POWER_AXIS_NAME)); // legend QwtLegend *legend = new QwtLegend; legend->setFrameStyle(QFrame::Box|QFrame::Sunken); m_plot->insertLegend(legend, QwtPlot::BottomLegend); QwtPlotGrid *grid = new QwtPlotGrid; grid->enableX(false); grid->enableYMin(true); grid->setMajPen(QPen(Qt::gray, 0, Qt::DotLine)); grid->setMinPen(QPen(Qt::transparent, 0 , Qt::NoPen)); grid->attach(m_plot); setupCurves(); QHBoxLayout* historyPlotlayout = new QHBoxLayout; historyPlotlayout->addWidget(m_plot); historyPlotlayout->setSpacing(0); setColors(Qt::blue, Qt::red); setLayout(historyPlotlayout); }