Qt GUI/ko

From Qt Wiki
Revision as of 09:49, 24 February 2015 by Maintenance script (talk | contribs)
Jump to navigation Jump to search

한국어 | ["영어 원문":http://doc.qt.io/qt-5.1/qtgui/qtgui-index.html]

Qt GUI

Qt GUI 모듈은, 윈도우 환경의 시스템 통합, 이벤트 처리, OpenGL 및 OpenGL ES 통합, 2D 그래픽스, 기본 이미징, 폰트와 텍스트 들을 위한 클래스들을 제공합니다. 이 클래스들은 Qt의 사용자 인터페이스 기술을 통해 내부적으로 사용되며, 또한 (저수준 OpenGL ES 그래픽스 API들을 이용한 응용프로그램 작성을 하는 경우 등에) 직접 사용될 수도 있습니다.

Qt는 사용자 인터페이스를 작성하는 응용프로그램 개발자를 위해, Qt GUI 모듈에 있는 enabler들보다 훨씬 더 적합한, 고수준의 API (Qt Quick과 같은)를 제공합니다.

시작하기

모듈의 클래스 정의를 포함하려면, 다음 지시자를 사용하십시오.

#include <QtGui&gt;

응용프로그램 윈도우

Qt GUI 모듈에서 가장 중요한 클래스는 "QGuiApplication&quot;:http://doc.qt.io/qt-5.1/qtgui/qguiapplication.html과 "QWindow&quot;:http://doc.qt.io/qt-5.1/qtgui/qwindow.html입니다. Qt 응용프로그램에서 화면에 내용을 표시하려면, 이 두 클래스가 필요하게 됩니다.

"QGuiApplication&quot;:http://doc.qt.io/qt-5.1/qtgui/qguiapplication.html은, 윈도우 시스템 및 다른 여러 곳에서 발생한 모든 이벤트들이 가공되고 발송되는, 메인 이벤트 루프를 포함하고 있습니다. 또한 이 클래스는 응용프로그램의 초기화 및 마무리 단계도 처리합니다.

"QWindow&quot;:http://doc.qt.io/qt-5.1/qtgui/qwindow.html 클래스는, 기반 윈도우 시스템의 윈도우를 표현합니다. 이는 터치 입력, 포커스, 키 입력, geometry 변경 등의, 윈도우 시스템에서 발생한 이벤트("QEvent&quot;:http://doc.qt.io/qt-5.1/qtcore/qevent.html)를 처리하기 위한 다수의 가상함수를 제공합니다.

2D 그래픽스

Qt GUI 모듈은, 2D 그래픽스, 이미징, 폰트 및 향상된 타이포그래피를 위한 클래스들을 포함합니다.

"QSurface::RasterSurface&quot;:http://doc.qt.io/qt-5.1/qtgui/qsurface.html#SurfaceType-enum 표면 타입으로 생성된 "QWindow&quot;:http://doc.qt.io/qt-5.1/qtgui/qwindow.html는 Qt의 고도로 최적화된 2D 벡터 그래픽스 API인 "QPainter&quot;:http://doc.qt.io/qt-5.1/qtgui/qpainter.html 및 "QBackingStore&quot;:http://doc.qt.io/qt-5.1/qtgui/qbackingstore.html와 결합하여 사용될 수 있습니다.

"QPainter&quot;:http://doc.qt.io/qt-5.1/qtgui/qpainter.html는 선, 다각형, 벡터 경로, 이미지와 텍스트에 대한 그리기를 지원합니다. 이에 대한 더 자세한 정보는, "Paint System&quot;:http://doc.qt.io/qt-5.1/qtgui/paintsystem.html 과 "Raster Window Example&quot;:http://doc.qt.io/qt-5.1/qtgui/rasterwindow.html를 참고하십시오.

Qt는 "QImage&quot;:http://doc.qt.io/qt-5.1/qtgui/qimage.html와 "QPixmap&quot;:http://doc.qt.io/qt-5.1/qtgui/qpixmap.html 클래스를 이용하여 이미지를 불러오고 저장할 수 있습니다. Qt는 JPEG와 PNG를 비롯한 대부분의 일반적인 이미지 형식을 지원합니다. 사용자는 "QImageIOPlugin&quot;:http://doc.qt.io/qt-5.1/qtgui/qimageioplugin.html 클래스를 통해서 다른 형식에 대한 지원을 추가할 수 있습니다. 이에 대한 더 자세한 정보는 "Reading and Writing Image Files&quot;:http://doc.qt.io/qt-5.1/qtgui/paintsystem-images.html을 참고하십시오.

Qt의 타이포그래피는, QPainter API를 Qt의 폰트 클래스(주로 QFont)들과 함께 사용하는, "QTextDocument&quot;:http://doc.qt.io/qt-5.1/qtgui/qtextdocument.html를 통해 실현됩니다. 텍스트와 폰트 처리에 좀 더 저수준의 API를 선호하는 응용프로그램에는, "QRawFont&quot;:http://doc.qt.io/qt-5.1/qtgui/qrawfont.html 와 "QGlyphRun&quot;:http://doc.qt.io/qt-5.1/qtgui/qglyphrun.html 클래스를 사용할 수 있습니다.

OpenGL과 OpenGL ES에 통합

QWindow는 플랫폼의 지원여부에 따라, 데스크탑 OpenGL, OpenGL ES 1.1 및 OpenGL ES 2.0을 이용한 렌더링을 지원합니다. OpenGL 렌더링은, QWindow의 표면 타입을 "QSurface::OpenGLSurface&quot;:http://doc.qt.io/qt-5.1/qtgui/qsurface.html#SurfaceType-enum로 설정하고, format 속성을 "QSurfaceFormat&quot;:http://doc.qt.io/qt-5.1/qtgui/qsurfaceformat.html로 선택한 뒤, 네이티브 OpenGL 컨텍스트를 관리하기 위한 "QOpenGLContext&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglcontext.html를 생성하면 활성화됩니다.

또한 Qt에는, OpenGL 가속 QPainter 렌더링의 이용을 가능하게 하는 "QOpenGLPaintDevice&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglpaintdevice.html가 있으며, 이 클래스는 OpenGL 코드 작성을 간편화하고, 확장 처리의 복잡성 및 OpenGL ES 2 과 데스크탑 OpenGL의 구분을 숨기는 편의도 제공합니다.

이 편의 클래스들은 "QOpenGLFunctions&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglfunctions.html 클래스를 포함하며, 이는 네이티브 OpenGL 리소스를 좀 더 단순화된 Qt API: "QOpenGLBuffer&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglbuffer.html, "QOpenGLFramebufferObject&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglframebufferobject.html, "QOpenGLShaderProgram&quot;:http://doc.qt.io/qt-5.1/qtgui/qopenglshaderprogram.html로 감싸고 있어서, 응용프로그램으로 하여금 OpenGL 함수 포인터와 클래스로 직접 작업할 필요 없이 데스크탑 OpenGL상에서 모든 OpenGL ES 2 기능을 사용하게 해줍니다.

이에 대한 더 자세한 정보는, "OpenGL Window Example&quot;:http://doc.qt.io/qt-5.1/qtgui/openglwindow.html을 참고하십시오.

Qt GUI 모듈은 또한, 3D 그래픽스와 관련된 가장 일반적인 수학적 연산을 지원하기 위한 몇 개의 수학 클래스를 포함합니다. 그 중에 "QMatrix4x4&quot;:http://doc.qt.io/qt-5.1/qtgui/qmatrix4x4.html, "QVector4D&quot;:http://doc.qt.io/qt-5.1/qtgui/qvector4d.html 와 "QQuaternion&quot;:http://doc.qt.io/qt-5.1/qtgui/qquaternion.html가 포함됩니다.

"QSurface::OpenGLSurface&quot;:http://doc.qt.io/qt-5.1/qtgui/qsurface.html#SurfaceType-enum로 생성된 QWindow는, 시각적 품질을 일부 희생하는 대신, OpenGL 하드웨어 가속 2D 그래픽스를 얻기 위해, QPainter 및 QOpenGLPaintDevice와 결합하여 이용될 수 있습니다.

Qt 5.0 이전의 Qt GUI

Qt 5.0 이전에, Qt GUI 모듈은, Qt와 Qt widget 집합에 포함된 그래픽 사용자 인터페이스, item view, graphics view 프레임워크 및 인쇄와 관련된 모든 것들을 담는 단일 컨테이너였습니다. Qt 5 부터, 이 들 클래스들은 Qt Widget 모듈로 옮겨졌습니다. 인쇄는 Qt Print Support 로 옮겨졌습니다. 이 모듈들은 Qt 설치에서 제외될 수 있으니 주의하십시오.

이제 Qt GUI는, 모든 그래픽 응용프로그램에서 보편적으로 사용되는 enabler의 작은 집합만을 포함하고 있습니다.

드래그 앤 드롭

이에 대한 더 자세한 정보는 "Drag and Drop&quot;:http://doc.qt.io/qt-5.1/qtgui/dnd.html을 참고하십시오.

참조