-
카테고리
-
세부 분야
데스크톱 앱 개발
-
해결 여부
미해결
위젯프로그램 위에 챠트 띄우기
22.07.27 16:37 작성 조회수 250
1
강사님 안녕하세요
강의를 통해 Qt를 배우고 주로 단순히 하나의 창위에서 프로그램하는 위젯 프로그램을 만들고 있습니다.
해당 위젯에 Qt Charts 의 linechart 를 출력하려고 하는데요
아래 그림과 같이 버튼을 눌렀을때 라인차트를 그리려고 하는데
챠트를 임의의 위젯 위에 올려야 하는데 어떻게 하는지 가이드를 좀 주실 수 있을까요?
챠트도 하나의 위젯으로 window 창에서 오픈하는 예제는 있는데 위젯위에 위젯을 띄우는 방법이 궁금합니다.
물론 레이아웃이 적용이되어 위젯의 크기를 바꿀때 챠트도 비례하여 늘고 줄었으면 합니다.
답변을 작성해보세요.
0
김대진
지식공유자2022.07.27
안녕하세요. 재우님,~~
예를 들어 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를 넣을수 있습니다.
궁금한것 있으면 언제든 질문해주세요.~
답변 1