한국어
 

커스텀 위젯 promote 방법

LISP 2021.06.23 09:22 조회 수 : 20

 

프로젝트에서 커스텀 위젯을 하나 배치하고 위젯에 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를 사용하려면 어떻게 해야 하는지 궁금합니다.

 

감사합니다.