Files
GoldenCheetah/qwt/playground/plotmatrix/main.cpp
Joachim Kohlhammer 49cf6340a4 Upgraded Qwt to 6.2 (branch: qwt-multiaxes) (#4427)
This commit is based on https://github.com/GoldenCheetah/GoldenCheetah/pull/3956
with the following additions / changes:
* Upgraded to the latest version of the multiaxes-branch, thus eliminating crashes of GoldenCheetah on startup
* Disabled the emitting of Layout Requests on geometry changes of QwtScaleWidget - without this, CPU utilization was up to 100% on one core
* Added the class SplineLookup, reusing small portions of code from Qwt 6.1
* Re-added the splines in WPrime and RideFile (resampling), using the new interface of QwtSpline
* Appveyor: qwt in cache-section now depends on qwt/qwtconfig.prin.in for refresh on version change
2024-01-06 18:59:55 -03:00

81 lines
1.9 KiB
C++

/*****************************************************************************
* Qwt Examples - Copyright (C) 2002 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#include "PlotMatrix.h"
#include <QwtPlotGrid>
#include <QwtPlot>
#include <QwtScaleWidget>
#include <QwtMath>
#include <QApplication>
namespace
{
class MainWindow : public PlotMatrix
{
public:
MainWindow();
};
}
MainWindow::MainWindow()
: PlotMatrix( 3, 4 )
{
using namespace QwtAxis;
setAxisVisible( YLeft );
setAxisVisible( YRight );
setAxisVisible( XBottom );
for ( int row = 0; row < numRows(); row++ )
{
const double v = std::pow( 10.0, row );
setAxisScale( YLeft, row, -v, v );
setAxisScale( YRight, row, -v, v );
}
for ( int col = 0; col < numColumns(); col++ )
{
const double v = std::pow( 10.0, col );
setAxisScale( XBottom, col, -v, v );
setAxisScale( XTop, col, -v, v );
}
for ( int row = 0; row < numRows(); row++ )
{
for ( int col = 0; col < numColumns(); col++ )
{
QwtPlot* plot = plotAt( row, col );
plot->setCanvasBackground( QColor( Qt::darkGray ) );
QwtPlotGrid* grid = new QwtPlotGrid();
grid->enableXMin( true );
grid->setMajorPen( Qt::white, 0, Qt::DotLine );
grid->setMinorPen( Qt::gray, 0, Qt::DotLine );
grid->attach( plot );
}
}
plotAt( 1, 0 )->axisWidget( YLeft )->setLabelRotation( 45 );
plotAt( 1, numColumns() - 1 )->axisWidget( YRight )->setLabelRotation( -45 );
updateLayout();
}
int main( int argc, char* argv[] )
{
QApplication app( argc, argv );
MainWindow window;
window.resize( 800, 600 );
window.show();
return app.exec();
}