QWt 플롯 Zoomer를 사용하여 간단한 예를 보여줍니다. 확대는 작동하지만 확대/축소는 원래 배율 대신 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가 필요한 이유를 놓쳤습니다. –