QWtプロット、ここではQWtPlotZoomerを使用した簡単な例です。ズームインは有効ですが、元の縮尺ではなく縮尺を0〜1000に戻します。qwt間違ったレルムでズームアウト
私は(これらの行の違いは何ですか?)
zoomer->setZoomBase(false);
zoomer->zoom(0);
でこれを解決しようとしたが、それは効果がありません。 zoomerの正しい初期スケールを得るために何をする必要がありますか?自明な解は、曲線の取り付け後、しかし、適用されない本当の仕事の例ではズーマーを実装することです:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QDebug>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_zoomer.h>
#include <vector>
using std::vector;
int main(int argc, char **argv)
{
QApplication a(argc, argv);
QwtPlot * plot = new QwtPlot();
plot->setAxisAutoScale(QwtPlot::xBottom);
plot->setAxisAutoScale(QwtPlot::yLeft);
QwtPlotZoomer *zoomer;
zoomer = new QwtPlotZoomer(QwtPlot::xBottom, QwtPlot::yLeft, plot->canvas());
// create data
vector<double> x(100);
vector<double> y1(x.size());
for (size_t i = 0; i< x.size(); ++i) { x[i] = int(i)-50; }
for (size_t i = 0; i< y1.size(); ++i) { y1[i] = pow(double(abs(i-50))/10,2); }
// first curve
QwtPlotCurve *curve = new QwtPlotCurve();
curve->setRawSamples(&x[0], &y1[0], x.size());
curve->attach(plot);
zoomer->setZoomBase(false);
zoomer->zoom(0);
plot->replot();
QMainWindow window;
window.setCentralWidget(plot);
window.resize(800, 600);
window.show();
return a.exec();
}
私は 'setZoomBase'が必要で、私は自分のコードにそれを適用したことを理解します。しかし、doReplot = trueが必要な理由は分かりません。 –