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

[Qt 프로그래밍] Qt QWT 속성 이해하기 (Graph)

by vicddory 2017. 12. 11.

[Qt 프로그래밍] Qt QWT 속성 이해하기 (Graph)


Qt 프로그래밍을 편하게 돕는 라이브러리가 하나 있습니다. 윈도우의 OpenGL에 맞먹는 Qt의 QWT입니다. QWT는 버전 5부터 지원되는데 2D 그래픽 라이브러리 중에선 가장 편합니다. Qt 프로그래밍할 때, 그래픽 라이브러리 고민하지 마시고 무조건 QWT 선택하세요. QWT만큼 편한 Qt 라이브러리가 또 없습니다.


[Qt 프로그래밍] Qt QWT 속성 이해하기[Display plot on UI form]


이 포스트에선 항상 헷갈리는 qwt의 속성들을 설명합니다. (Qt 프로그래밍 qwt는 qt에서 사용할 수 있는 그래픽 라이브러리 중 최고입니다.)


아래 그림을 살펴보죠.

가운데 중앙 - setTitle() : Qwt Plot를 띄웠을 때, Plot의 이름 설정.

가운데 왼쪽 - setAxisTitle() : 왼쪽 영역 이름 설정(Y축)

가운데 아래 - setAxisTitle() : 하단 영역 이름 설정(X축)


상단 왼쪽 - enableXMin() : 최소 값을 포함해, Plot의 배경 스타일 결정. 아래 예제 화면에선 DotLine 사용.

하단 우측 - setStyle() : Plot 위에 그려질 요소들의 스타일 결정. 아래 예제 화면에선 Hexagon 스타일에 노란색 확인됨.


그림 아래의 소스를 참조해 Qt 프로그래밍하여 실행해 보세요. Qt 프로그래밍 QWT 소스는 아래 예제 화면을 나타내는 데 사용한 소스와 같습니다.


QWT Qt 그래픽 라이브러리, 3rd party[Display plot on UI form]


바로 아래 코드는 X, Y축의 항목 이름을 설정하고, QwtSymbol을 이용해 각 점들의 스타일도 설정합니다.


[Qt 프로그래밍 QWT 예제 소스 1]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void Qwt2D::InitPlotStyle()
{
    // Axis
    plot_->setAxisTitle(QwtPlot::yLeft, "Distance");
    plot_->setAxisTitle(QwtPlot::xBottom, "Index");
    
    // Symbol
    symbol_left_ = new QwtSymbol;
    symbol_left_->setStyle(QwtSymbol::Hexagon);
    symbol_left_->setPen(QPen(Qt::black, 1));
    QBrush lbrush(Qt::green);
    symbol_left_->setBrush(lbrush);
    symbol_left_->setSize(QSize(55));
    curve_left_->setSymbol(symbol_left_);
    
    // Grid
    grid_cargo_ = new QwtPlotGrid();
    grid_cargo_->enableXMin(true);
    QPen pen;
    pen.setColor(Qt::gray);
    pen.setStyle(Qt::DotLine);
    grid_cargo_->setPen(pen);
    grid_cargo_->setMajorPen(pen);
    grid_cargo_->setMinorPen(pen);
    grid_cargo_->attach(plot_);
}
cs


[Qt 프로그래밍 QWT 예제 소스 2]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
QRectF rect_;
rect_.setSize(QSizeF(x, x));
rect_.moveTopLeft(QPointF(x, x, x, x));
 
QPainterPath path;
path.addRect(rect_);
 
QColor color_ = Qt::cyan;
color_.setAlpha(kBoxAlpha);
 
QwtPlotShapeItem *item_ = new QwtPlotShapeItem();
item_->setShape(path);
item_->setBrush(color_);
item_->attach(plot_g);
cs


이 정도로만 Qt 프로그래밍에 필요한 QWT 속성 이해하고 더 상세한 내용 알아가시면 되겠습니다.


[Qt 프로그래밍] Qt QWT 속성 이해하기 (Graph)

댓글