2017-03-13 3 views
0

Qt 레거시 코드를 4.7에서 5.8으로 변환해야합니다. Qt Creator 4.2.1 Clang 7.0 (Apple) 64 비트. 오류 :'QwtPlotCurve'의 'setRawData'라는 이름의 멤버가 없습니다. - Qt 4.7을 Qt 5.8로 변환합니다.

#include "mpiChartCurve.h" 
#include <qwt_plot_curve.h> 


mpiChartCurve::mpiChartCurve(QwtPlot *chart_): 
    m_chart(chart_), 
    m_curve(new QwtPlotCurve()) 
{ 
} 

mpiChartCurve::~mpiChartCurve() 
{ 
    // be default qwt will delete the curve when it is destroyed 
    // only delete the curve when detach is called 
} 

void mpiChartCurve::detach() 
{ 
    m_curve->detach(); 

    // hack for now? qwt doesn't seem to redraw properly until a curve is attached after a detachment, so attach dummy 
    QVector<double> x, y; 
    m_curve->setRawData(x.constData(), y.constData(), 0); // JDL convert Qt4 to Qt5 BROKE 
    m_curve->attach(m_chart); 
    m_curve->detach(); 

    delete m_curve; 
    m_curve = 0; 
} 


void mpiChartCurve::attach() 
{ 
    if (!m_curve) 
     return; 

    m_curve->setRawData(m_xData.constData(),m_yData.constData(), count()); // JDL convert Qt4 to Qt5 BROKE 
    m_curve->attach(m_chart); 
} 

2 통화 당에서 오류

../src/usercontrols/mpiChartCurve.cpp:23:14 .cpp 파일에 보면 어떤 회원은 이름이 없다 'setRawData'in 'QwtPlotCurve' m_curve-> setRawData (x.constData(), y.constData(), 0); JDL은 Qt5에 QT4로 변환 //은 부러 ~~~~~~~^

../src/usercontrols/mpiChartCurve.cpp:37:14 : 오류 : 이름이 'setRawData' 'QwtPlotCurve'에는 회원 m_curve-> setRawData (m_xData.constData(), m_yData.constData(), count()); // JDL은 Qt5에 QT4 변환이 을 파산 ~~~~~~~^

이 오류가 발생 메이크업 : *** [mpiChartCurve.o] 오류 1 21시 12분 40초 : 프로세스 "/

Qt5 문서는 setRawData

언급 "확인 : USR/빈은/확인"단계를 실행할 때 (데스크탑 Qt는 5.8.0 연타 64 비트 키트) 구축하는 동안 프로젝트 mypersonalindex를 배포/코드 2 오류로 종료 "
QByteArray & setRawData(const char *data, uint size) 
,451,515,

나는,

(구식) 운영자 CONST 숯불 *() const를

내 C++ 기술이 매우 제한되어 QByteArray에 대한 문서에서이 댓글을 발견하면 Qt5에 QT4에서이 변환 할 수있는 어떤 사소한 조작을 참조 할 않았다 . 대체 뭐야?

답변

0

setRawData는 QwtPlotCurve의 멤버 함수가 아닙니다. QByteArray의 멤버 함수이며 2 개의 인수 만 허용합니다. setRawData를 setRawSamples로 변경하면 setRawSamples는 QwtPlotCurve의 멤버 함수이며 찾고있는 세 가지 인수를 허용합니다.

고정 버전

#include "mpiChartCurve.h" 
#include <qwt_plot_curve.h> 


mpiChartCurve::mpiChartCurve(QwtPlot *chart_): 
    m_chart(chart_), 
    m_curve(new QwtPlotCurve()) 
{ 
} 

mpiChartCurve::~mpiChartCurve() 
{ 
    // be default qwt will delete the curve when it is destroyed 
    // only delete the curve when detach is called 
} 

void mpiChartCurve::detach() 
{ 
    m_curve->detach(); 

    // hack for now? qwt doesn't seem to redraw properly until a curve is attached after a detachment, so attach dummy 
    QVector<double> x, y; 
    m_curve->setRawSamples(x.constData(), y.constData(), 0); // JDL convert Qt4 to Qt5 BROKE 
    m_curve->attach(m_chart); 
    m_curve->detach(); 

    delete m_curve; 
    m_curve = 0; 
} 


    void mpiChartCurve::attach() 
{ 
    if (!m_curve) 
     return; 

    m_curve->setRawSamples(m_xData.constData(),m_yData.constData(), count()); // JDL convert Qt4 to Qt5 BROKE 
    m_curve->attach(m_chart); 
}