본문 바로가기
C++ 200제/코딩 IT 정보

[Qt 프로그래밍] 그래픽 라이브러리 Qwt 소멸자 코드

by vicddory 2017. 2. 5.

[Qt 프로그래밍] Qwt 소멸자 코드 (그래픽 라이브러리) 


Qwt Plot를 사용한 뒤 메모리 해제를 완벽히 하려면 detachItems() 함수를 이용해야 합니다.


Qwt User's Guide 6.1.2의 QwtPlotItem Class Reference 문서를 참조해 보면, plot 내부에 많은 아이템 클래스가 존재하는 것을 확인할 수 있습니다.


Qwt 소멸자 코드 Qt 프로그래밍[Qt 그래픽 라이브러리] QWT 소멸자


보시다시피 저 수많은 아이템 중, 실제 사용하셨던 아이템들은 detachItems()로 해제해 줘야 합니다.


그래야 메모리 누수가 발생하지 않아요. 해제 코드는 꽤 간단합니다. 해제할 아이템을 선택하고 true를 인자로 넘기면 됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
plot_->detachItems(QwtPlotItem::Rtti_PlotItem, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotGrid, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotScale, true);
 
plot_->detachItems(QwtPlotItem::Rtti_PlotLegend, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotMarker, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotCurve, true);
 
plot_->detachItems(QwtPlotItem::Rtti_PlotSpectroCurve, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotIntervalCurve, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotHistogram, true);
 
plot_->detachItems(QwtPlotItem::Rtti_PlotSpectrogram, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotSVG, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotTradingCurve, true);
 
plot_->detachItems(QwtPlotItem::Rtti_PlotBarChart, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotMultiBarChart, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotShape, true);
 
plot_->detachItems(QwtPlotItem::Rtti_PlotTextLabel, true);
plot_->detachItems(QwtPlotItem::Rtti_PlotZone, true);
cs


간단하네요.


 [Qt 프로그래밍] Qwt 소멸자 코드 (그래픽 라이브러리)

댓글