|
本帖最后由 一叶知秋 于 2015-6-19 12:49 编辑
找了半天终于被我给搞定了,效果是在某一个plot上缩放,多个图可以同时放大缩小移动。。。
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QDebug>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- PM1 = new QwtPlotMagnifier(ui->qwtPlot1->canvas());
- PM2 = new QwtPlotMagnifier(ui->qwtPlot2->canvas());
- // QwtPlotPanner *PQ1 = new QwtPlotPanner(ui->qwtPlot1->canvas());
- // QwtPlotPanner *PQ2 = new QwtPlotPanner(ui->qwtPlot2->canvas());
- // step1: 将这个信号与自定义的槽函数关联起来 互为映射需要建立相互之间的关联
- connect(ui->qwtPlot1->axisWidget(QwtPlot::xBottom), SIGNAL(scaleDivChanged()),
- SLOT(setRange()));
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- // step2: 在自定义的槽函数中获取坐标轴的上下限,然后再将其应用到另一个图上就可以了
- void MainWindow::setRange()
- {
- double xMin = ui->qwtPlot1->axisScaleDiv(QwtPlot::xBottom).lowerBound();
- double xMax = ui->qwtPlot1->axisScaleDiv(QwtPlot::xBottom).upperBound();
- double yMin = ui->qwtPlot1->axisScaleDiv(QwtPlot::yLeft).lowerBound();
- double yMax = ui->qwtPlot1->axisScaleDiv(QwtPlot::yLeft).upperBound();
- ui->qwtPlot2->setAxisScale(QwtPlot::xBottom, xMin, xMax);
- ui->qwtPlot2->setAxisScale(QwtPlot::yLeft, yMin, yMax);
- ui->qwtPlot2->replot();
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|