프로젝트에서 커스텀 위젯을 하나 배치하고 위젯에 qtChart를 promote로 연결시키려고 합니다.
qt chart 클래스는 아래 경로에서 다운받았습니다.
https://doc.qt.io/qt-5.12/qtcharts-zoomlinechart-example.html
promote로 다운받은 클래스와 헤더파일을 아래와 같이 지정 하였습니다.
Base class name: QWidget
Promoted class name : ChartView
Header file: chartview.h
global include : unchecked
빌드를 하면 ui_mainwindow.h 파일 에러가 발생합니다.
에러 위치는 promote로 연결시킨 클래스 부분이고, 매개변수가 이상하게 생성된 것을 확인했습니다.
chartWidget = new ChartView (gBoxChart);
매개변수가 chart 여야 하는데 gBoxChart로 생성이 되어 있습니다.
제 생각에는 ui의 위젯 부모의 영향을 받은게 아닌가 생각됩니다.
정확한 에러메시지는 아래와 같습니다.
error : no matching function for call to 'ChartView::ChartView(QGroupBox*&) in file included from ...
uic 자동생성 코드시 문제가 발생하는 것 같습니다.
chartview.h
class ChartView : public QChartView { public: ChartView(QChart *chart, QWidget *parent = 0);
chartview.cpp
ChartView::ChartView(QChart *chart, QWidget *parent) : QChartView(chart, parent), m_isTouching(false) { setRubberBand(QChartView::RectangleRubberBand); }
첫 번째 매개 변수로 QWidget parent를 사용하려면 어떻게 해야 하는지 궁금합니다.
감사합니다.
다른 방법으로 해결했습니다.
ui에서 레이아웃 배치하고 레이아웃에 연결하는 방법으로 바꿔서 구현했습니다.
감사합니다.