Esempio n. 1
0
void plotsDialog::resetZoomer(int i)
{

    Plot* currentPlot = dynamic_cast<Plot*>(tabs->currentWidget());

    d_zoomer[0] = new Zoomer( QwtPlot::xBottom, QwtPlot::yLeft,
                              currentPlot->canvas() );
    d_zoomer[0]->setRubberBand( QwtPicker::RectRubberBand );
    d_zoomer[0]->setRubberBandPen( QColor( Qt::green ) );
    d_zoomer[0]->setTrackerMode( QwtPicker::ActiveOnly );
    d_zoomer[0]->setTrackerPen( QColor( Qt::white ) );

    d_zoomer[1] = new Zoomer( QwtPlot::xTop, QwtPlot::yRight,
                              currentPlot->canvas() );

    d_panner = new QwtPlotPanner( currentPlot->canvas() );
    d_panner->setMouseButton( Qt::MidButton );

    d_picker = new QwtPlotPicker( QwtPlot::xBottom, QwtPlot::yLeft,
                                  QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
                                  currentPlot->canvas() );
    d_picker->setStateMachine( new QwtPickerDragPointMachine() );
    d_picker->setRubberBandPen( QColor( Qt::green ) );
    d_picker->setRubberBand( QwtPicker::CrossRubberBand );
    d_picker->setTrackerPen( QColor( Qt::white ) );

    connect(d_picker,SIGNAL(moved(QPoint)),SLOT(moved(QPoint)));

    ui->overlayButton->setHidden(currentPlot->isParametric);
    ui->dataSelectButton->setHidden(!currentPlot->isParametric);

    enableZoomMode(false);
}
Esempio n. 2
0
int MainWin::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: moved((*reinterpret_cast< const QPoint(*)>(_a[1]))); break;
        case 1: selected((*reinterpret_cast< const QwtPolygon(*)>(_a[1]))); break;
        case 2: print(); break;
        case 3: exportSVG(); break;
        case 4: enableZoomMode((*reinterpret_cast< bool(*)>(_a[1]))); break;
        }
        _id -= 5;
    }
    return _id;
}
Esempio n. 3
0
PlotWindow::PlotWindow(MainWindow *parent):QDialog(parent)
{
	qwtPlot = new QwtPlot(this);
																	//设置坐标轴
	qwtPlot->setAxisScale(qwtPlot->xBottom,0,1000);					//x轴值的初始范围0到1000
	qwtPlot->setAxisScale(qwtPlot->yLeft,0,5);						//y轴值的初始范围0到5
																	//加入网格
	grid = new QwtPlotGrid;
	grid->enableX(true);
	grid->enableY(true);
	grid->enableXMin(false);
	grid->enableYMin(false);
	grid->setMajorPen(QPen(Qt::black,0,Qt::DotLine));				//网格黑色
	grid->attach(qwtPlot);
																	//加入缩放功能
	d_zoomer = new Zoomer(QwtPlot::xBottom,QwtPlot::yLeft,
						qwtPlot->canvas());
	d_zoomer->setRubberBand(QwtPicker::RectRubberBand);
	d_zoomer->setRubberBandPen(QColor(Qt::blue));					//鼠标选中框为蓝色
	d_zoomer->setTrackerMode(QwtPicker::ActiveOnly);
	d_zoomer->setTrackerPen(QColor(Qt::blue));						//鼠标选中坐标为蓝色
																	//加入拖移功能
	d_panner = new QwtPlotPanner(qwtPlot->canvas());
	d_panner->setMouseButton(Qt::MidButton);						//鼠标中间滑轮用于拖移

//	//设置通道名
//	qwtPlot->setTitle(QStringLiteral("ch")+ QString::number(i));

	parentWindow = parent;
	enableZoomMode(true);											//放大、平移功能

	xValues = NULL;
	yValues = NULL;

	H_trim = 20;													//正常显示时,底边宽度留白(全屏时为60)
																	//加入曲线
	qwtPlotCurve = new QwtPlotCurve;
	qwtPlotCurve->setStyle(QwtPlotCurve::Steps);
	qwtPlotCurve->setRenderHint(QwtPlotCurve::RenderAntialiased);
	qwtPlotCurve->attach(qwtPlot);
}
Esempio n. 4
0
void chooseCyclesForm::reCreateZoomer(){
	// zoomer
	peakSignalZoomer = new ScrollZoomer( /*QwtPlot::xBottom, QwtPlot::yLeft, */
		qwtPlot_peakSignal->canvas());
	peakSignalZoomer->setRubberBand(QwtPicker::RectRubberBand);
	peakSignalZoomer->setRubberBandPen(QColor(Qt::green));
	peakSignalZoomer->setTrackerMode(QwtPicker::ActiveOnly);
	peakSignalZoomer->setTrackerPen(QColor(Qt::white));

    // panner
	peakSignalPanner = new QwtPlotPanner(qwtPlot_peakSignal->canvas());
	peakSignalPanner->setMouseButton(Qt::MidButton);

	// picker
	peakSignalPicker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
		QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
		qwtPlot_peakSignal->canvas());
	peakSignalPicker->setStateMachine(new QwtPickerDragPointMachine());
	peakSignalPicker->setRubberBandPen(QColor(Qt::green));
	peakSignalPicker->setRubberBand(QwtPicker::CrossRubberBand);
	peakSignalPicker->setTrackerPen(QColor(Qt::white));

	enableZoomMode(false);
}
Esempio n. 5
0
void plotsDialog::on_zoomButton_toggled(bool checked)
{
    enableZoomMode(checked);
}
Esempio n. 6
0
void arnVectorPlot::init(void) {
    Size = 0;
    xval = 0;
    yval = 0;
    memallocaced = false;
    const QwtSymbol* qwtSym = new QwtSymbol(QwtSymbol::Ellipse, Qt::yellow, QPen(Qt::blue), QSize(5, 5));
    //
    //  Frame style
    //
    d_plot->setFrameStyle(QFrame::Box|QFrame::Raised);
    d_plot->setLineWidth(2);
    d_plot->setMidLineWidth(3);

    d_plot->setAxisTitle(QwtPlot::xBottom, "Time [s]");
    d_plot->setAxisScale(QwtPlot::xBottom,0, 10);
    d_plot->setAxisScale(QwtPlot::yLeft, -20.0, 20.0);

    d_grid->setPen(QPen(Qt::gray, 0.0, Qt::DotLine));
    d_grid->enableX(true);
    d_grid->enableXMin(true);
    d_grid->enableY(true);
    d_grid->enableYMin(false);
    d_grid->attach(d_plot);

    d_origin = new QwtPlotMarker();
    d_origin->setLineStyle(QwtPlotMarker::Cross);
    d_origin->setValue(5, 0.0);
    d_origin->setLinePen(QPen(Qt::gray, 0.0, Qt::DashLine));
    d_origin->attach(d_plot);

    d_curve->setSymbol(qwtSym);
    d_curve->setPen(QColor(Qt::red));
    d_curve->setStyle(QwtPlotCurve::Sticks);
    d_curve->setRenderHint(QwtPlotItem::RenderAntialiased, true);
    d_curve->setPaintAttribute(QwtPlotCurve::ClipPolygons, false);
    d_curve->attach(d_plot);

    d_zoomer[0] = 0;
    d_zoomer[1] = 0;
    d_panner = 0;

    pLayout->addWidget(pSplitter);
    pSplitter->addWidget(d_plot);
    pSplitter->addWidget(pOptionGroup);

    pAutoScaleChkBx->setCheckable(true);
    pZoonerChkBx->setCheckable(true);

    vbox->addWidget(pAutoScaleChkBx);
    vbox->addWidget(pZoonerChkBx);
    vbox->addStretch(1);
    pOptionGroup->setLayout(vbox);

    connect(pZoonerChkBx, SIGNAL(toggled(bool)), SLOT(enableZoomMode(bool)));
    connect(pAutoScaleChkBx, SIGNAL(toggled(bool)), SLOT(enableAutoScale(bool)));
    enableZoomMode(false);
    //TEST TEST TEST
    pSplitter->setStretchFactor (pSplitter->indexOf(d_plot), 9 );
    pSplitter->setStretchFactor (pSplitter->indexOf(pOptionGroup), 1 );
    //END TEST TEST TEST
}
Esempio n. 7
0
void AnalysisWidget::setupUi()
{
    m_curvePlot = new SampleCurvePlot;

    m_selectFilename = new QLabel;
    m_selectFilename->setText(QString());

    QVBoxLayout *curveLayout = new QVBoxLayout;
    curveLayout->addWidget(m_selectFilename);
    curveLayout->addWidget(m_curvePlot);
    curveLayout->addSpacing(10);

    m_zoomer[0] = new Zoomer( QwtPlot::xBottom, QwtPlot::yLeft,
        m_curvePlot->canvas());
    m_zoomer[0]->setRubberBand(QwtPicker::RectRubberBand);
    m_zoomer[0]->setRubberBandPen(QColor(Qt::green));
    m_zoomer[0]->setTrackerMode(QwtPicker::ActiveOnly);
    m_zoomer[0]->setTrackerPen(QColor(Qt::white));

    m_zoomer[1] = new Zoomer(QwtPlot::xTop, QwtPlot::yLeft,
         m_curvePlot->canvas());

    m_panner = new QwtPlotPanner(m_curvePlot->canvas());
    m_panner->setMouseButton(Qt::MidButton);

    m_picker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
        QwtPicker::PointSelection | QwtPicker::DragSelection,
        QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
        m_curvePlot->canvas());
    m_picker->setRubberBandPen(QColor(Qt::green));
    m_picker->setRubberBand(QwtPicker::CrossRubberBand);
    m_picker->setTrackerPen(QColor(Qt::white));

    enableZoomMode(false);

    m_synthesis = new QCheckBox;
    m_synthesis->setText(tr("二力合成"));
    m_filterMax = new QCheckBox;
    m_filterMax->setText(tr("过滤大数"));
    m_smoother = new QCheckBox;
    m_smoother->setText(tr("数据平滑"));
    m_fiveAxis = new QCheckBox;
    m_fiveAxis->setText(tr("五轴车"));

    QVBoxLayout *setupLayout = new QVBoxLayout;
    setupLayout->addWidget(m_synthesis);
    setupLayout->addWidget(m_filterMax);
    setupLayout->addWidget(m_smoother);
    setupLayout->addWidget(m_fiveAxis);

    m_itemGbx = new QGroupBox(tr("设置操作"));
    m_itemGbx->setLayout(setupLayout);

    m_selectBtn = new QPushButton;
    m_selectBtn->setText(tr("选择文件"));
    m_zoomBtn = new QPushButton;
    m_zoomBtn->setText(tr("放大"));
    m_cleanBtn = new QPushButton;
    m_cleanBtn->setText(tr("清除"));

    connect(m_selectBtn, SIGNAL(clicked()), this, SLOT(selectFile()));
    connect(m_zoomBtn, SIGNAL(toggled(bool)), SLOT(enableZoomMode(bool)));
    connect(m_cleanBtn, SIGNAL(clicked()), this, SLOT(clean()));
    connect(m_picker, SIGNAL(moved(const QPoint &)),
            SLOT(moved(const QPoint &)));
    connect(m_picker, SIGNAL(selected(const QwtPolygon &)),
            SLOT(selected(const QwtPolygon &)));

    QVBoxLayout *btnLayout = new QVBoxLayout;
    btnLayout->addWidget(m_selectBtn);
    btnLayout->addWidget(m_zoomBtn);
    btnLayout->addWidget(m_cleanBtn);

    m_funcGbx = new QGroupBox(tr("功能"));
    m_funcGbx->setLayout(btnLayout);

    m_dataTableWidget = new QTableWidget;
    m_dataTableWidget->setFixedSize(500, 125);

    QHBoxLayout *funcLayout = new QHBoxLayout;
    funcLayout->addSpacing(50);
    funcLayout->addWidget(m_itemGbx);
    funcLayout->addSpacing(20);
    funcLayout->addWidget(m_funcGbx);
    funcLayout->addSpacing(50);
    funcLayout->addWidget(m_dataTableWidget);
    funcLayout->addStretch();

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addLayout(curveLayout);
    mainLayout->addLayout(funcLayout);

    setLayout(mainLayout);
}
Esempio n. 8
0
MainWindow::MainWindow( QWidget *parent ):
    QMainWindow( parent )
{
    d_plot = new Plot( this );

    const int margin = 5;
    d_plot->setContentsMargins( margin, margin, margin, 0 );

    setContextMenuPolicy( Qt::NoContextMenu );

    d_zoomer[0] = new Zoomer( QwtPlot::xBottom, QwtPlot::yLeft,
        d_plot->canvas() );
    d_zoomer[0]->setRubberBand( QwtPicker::RectRubberBand );
    d_zoomer[0]->setRubberBandPen( QColor( Qt::green ) );
    d_zoomer[0]->setTrackerMode( QwtPicker::ActiveOnly );
    d_zoomer[0]->setTrackerPen( QColor( Qt::white ) );

    d_zoomer[1] = new Zoomer( QwtPlot::xTop, QwtPlot::yRight,
         d_plot->canvas() );

    d_panner = new QwtPlotPanner( d_plot->canvas() );
    d_panner->setMouseButton( Qt::MidButton );

    d_picker = new QwtPlotPicker( QwtPlot::xBottom, QwtPlot::yLeft,
        QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
        d_plot->canvas() );
    d_picker->setStateMachine( new QwtPickerDragPointMachine() );
    d_picker->setRubberBandPen( QColor( Qt::green ) );
    d_picker->setRubberBand( QwtPicker::CrossRubberBand );
    d_picker->setTrackerPen( QColor( Qt::white ) );

    setCentralWidget( d_plot );

    QToolBar *toolBar = new QToolBar( this );

    QToolButton *btnZoom = new QToolButton( toolBar );
    btnZoom->setText( "Zoom" );
    btnZoom->setIcon( QPixmap( zoom_xpm ) );
    btnZoom->setCheckable( true );
    btnZoom->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
    toolBar->addWidget( btnZoom );
    connect( btnZoom, SIGNAL( toggled( bool ) ), SLOT( enableZoomMode( bool ) ) );

#ifndef QT_NO_PRINTER
    QToolButton *btnPrint = new QToolButton( toolBar );
    btnPrint->setText( "Print" );
    btnPrint->setIcon( QPixmap( print_xpm ) );
    btnPrint->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
    toolBar->addWidget( btnPrint );
    connect( btnPrint, SIGNAL( clicked() ), SLOT( print() ) );
#endif

    QToolButton *btnExport = new QToolButton( toolBar );
    btnExport->setText( "Export" );
    btnExport->setIcon( QPixmap( print_xpm ) );
    btnExport->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
    toolBar->addWidget( btnExport );
    connect( btnExport, SIGNAL( clicked() ), SLOT( exportDocument() ) );

    toolBar->addSeparator();

    QWidget *hBox = new QWidget( toolBar );

    QHBoxLayout *layout = new QHBoxLayout( hBox );
    layout->setSpacing( 0 );
    layout->addWidget( new QWidget( hBox ), 10 ); // spacer
    layout->addWidget( new QLabel( "Damping Factor", hBox ), 0 );
    layout->addSpacing( 10 );

    QwtCounter *cntDamp = new QwtCounter( hBox );
    cntDamp->setRange( 0.0, 5.0, 0.01 );
    cntDamp->setValue( 0.0 );

    layout->addWidget( cntDamp, 0 );

    ( void )toolBar->addWidget( hBox );

    addToolBar( toolBar );
#ifndef QT_NO_STATUSBAR
    ( void )statusBar();
#endif

    enableZoomMode( false );
    showInfo();

    connect( cntDamp, SIGNAL( valueChanged( double ) ),
        d_plot, SLOT( setDamp( double ) ) );

    connect( d_picker, SIGNAL( moved( const QPoint & ) ),
        SLOT( moved( const QPoint & ) ) );
    connect( d_picker, SIGNAL( selected( const QPolygon & ) ),
        SLOT( selected( const QPolygon & ) ) );
}
Esempio n. 9
0
signalForm::signalForm(dualVector<double>* gidroSignal){
	log.open("signalForm.log");
	log << "constructor call" << std::endl;

	setupUi(this);
	
	signal = gidroSignal;
	
	qwtPlot_signal->setAutoReplot(false);
	
	//plot
	qwtPlot_signal->setCanvasBackground(QColor(Qt::darkBlue));
	qwtPlot_signal->setTitle("Signal");
	qwtPlot_signal->setAxisTitle(QwtPlot::xBottom, "Time points");
	qwtPlot_signal->setAxisTitle(QwtPlot::yLeft, "Amplitude");
	
	//legend
	QwtLegend *legend = new QwtLegend;
    qwtPlot_signal->insertLegend(legend, QwtPlot::BottomLegend);
	
	//grid
	QwtPlotGrid *grid = new QwtPlotGrid;
	grid->enableXMin(true);
	grid->setMajPen(QPen(Qt::white, 0, Qt::DotLine));
	grid->setMinPen(QPen(Qt::gray, 0 , Qt::DotLine));
	grid->attach(qwtPlot_signal);


	
	//curve
	signalCurve = new QwtPlotCurve("Gidrophone 0 signal");
	signalCurve->setPen(QPen(Qt::yellow));
	signalCurve->attach(qwtPlot_signal);
	

	//display signal curve
	showSignalFromGidrophone(0);	
	
	
	
	
	// zoomer
	signalZoomer = new ScrollZoomer( /*QwtPlot::xBottom, QwtPlot::yLeft, */
		qwtPlot_signal->canvas());
	signalZoomer->setRubberBand(QwtPicker::RectRubberBand);
	signalZoomer->setRubberBandPen(QColor(Qt::green));
	signalZoomer->setTrackerMode(QwtPicker::ActiveOnly);
	signalZoomer->setTrackerPen(QColor(Qt::white));

    // panner
    signalPanner = new QwtPlotPanner(qwtPlot_signal->canvas());
    signalPanner->setMouseButton(Qt::MidButton);
	
	// picker
    signalPicker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
        QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn, 
        qwtPlot_signal->canvas());
    signalPicker->setStateMachine(new QwtPickerDragPointMachine());
    signalPicker->setRubberBandPen(QColor(Qt::green));
    signalPicker->setRubberBand(QwtPicker::CrossRubberBand);
    signalPicker->setTrackerPen(QColor(Qt::white));

    //setCentralWidget(qwtPlot_signal);
	
	// toolbar
	QToolBar *toolBar = new QToolBar(this);

	
	// zoom button
    QToolButton *btnZoom = new QToolButton(toolBar);
    btnZoom->setText("Zoom");
    btnZoom->setIcon(QIcon(zoom_xpm));
    btnZoom->setCheckable(true);
    btnZoom->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    toolBar->addWidget(btnZoom);
	
    connect(btnZoom, SIGNAL(toggled(bool)), SLOT(enableZoomMode(bool)));
	
	
	// adjust spinboxes and connect to showSignalFromGidrophone()
	spinBox_gidrophonenumber->setMinimum(0);
	spinBox_gidrophonenumber->setMaximum(signal->sizex() - 1);
	
	connect(spinBox_gidrophonenumber, SIGNAL( valueChanged(int) ), this, SLOT( showSignalFromGidrophone(int) ) );
	
	enableZoomMode(false);
	qwtPlot_signal->setAutoReplot(true);

}