2014/03/07

QCustomPlotでマウスホイールズーム&Dragでシフト

あんまり簡単なんで書くのもなんなのだが・・・。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    mpHistogramBars = new QCPBars(ui.histogram->xAxis, ui.histogram->yAxis);
    mpHistogramBars->setPen(QPen(Qt::gray));// 色指定
    mpHistogramBars->setBrush(QBrush(Qt::gray));// 色指定
    ui.histogram->addPlottable(mpHistogramBars);// 追加
    // 以下を追加する事でマウスホイールズームとDragでシフトができるようになる
    ui.histogram->setInteraction(QCP::iRangeDrag, true);
    ui.histogram->setInteraction(QCP::iRangeZoom, true);

    // 例えばさらに垂直方向(y軸方向)だけズームやシフトすると制限する事も可能
    ui.histogram->axisRect()->setRangeDrag(Qt::Vertical);
    ui.histogram->axisRect()->setRangeZoom(Qt::Vertical);
    
}



これだけでマウスホイールズームとDragでのシフトができるようになる。
こんな感じ

次回ではシフト・ズーム範囲を制限してみる。


0 件のコメント: