• 카테고리

    질문 & 답변
  • 세부 분야

    데스크톱 앱 개발

  • 해결 여부

    미해결

위젯프로그램 위에 챠트 띄우기

22.07.27 16:37 작성 조회수 243

1

강사님 안녕하세요
 
강의를 통해 Qt를 배우고 주로 단순히 하나의 창위에서 프로그램하는 위젯 프로그램을 만들고 있습니다.
해당 위젯에 Qt Charts 의 linechart 를 출력하려고 하는데요
아래 그림과 같이 버튼을 눌렀을때 라인차트를 그리려고 하는데
챠트를 임의의 위젯 위에 올려야 하는데 어떻게 하는지 가이드를 좀 주실 수 있을까요?
챠트도 하나의 위젯으로 window 창에서 오픈하는 예제는 있는데 위젯위에 위젯을 띄우는 방법이 궁금합니다.
물론 레이아웃이 적용이되어 위젯의 크기를 바꿀때 챠트도 비례하여 늘고 줄었으면 합니다.
 

답변 1

답변을 작성해보세요.

0

안녕하세요. 재우님,~~

예를 들어 QChartView 오브젝트가 아래와 같이 chartView 라고 가정해볼께요. 

QChartView *chartView = new QChartView(chart);

 

chart 가 line chart 라고 가정하면 chartView 의 오브젝트는 QChartView 클래스인데요. 이 클래스는 QGraphicsView 클래스를 상속받고, QGraphicsView 를 따라가보면 QWidget 을 상속받습니다. 따라서 QChartView 클래스의 상속을 따라가보면 QWidget 을 상속받습니다. 

 

그렇기 때문에 QWidget 안에 넣을때 QChartView 클래스의 오브젝트를 QVBoxLayout 같은 위젯에 먼저 넣고 QVBoxLayout 을 QWidget 안에 넣으면 됩니다.

정확지는 않지만 소스코드로 표현하면 아래와 같이 할 수 있습니다.

QWidget *myWidget = new QWidget(this);
QVBoxLayout *mainLayout = new QVBoxLayout;

QChartView *chartView = new QChartView(chart);

mainLayout->addWidget(chartView);
myWidget->setLayout(mainLayout);

위와 같은식으로 하면 QWidget 안에 chart를 넣을수 있습니다.

궁금한것 있으면 언제든 질문해주세요.~