한국어
Qt
 

General and Desktop Qt 프로그래밍의 시작

makersweb 2015.10.25 21:35 조회 수 : 14383 추천:1

Qt는 어플리케이션 프레임워크1로써 리눅스, MS윈도우, 맥 OS X를 지원한다. 또한 안드로이드, iOS, 블랙베리, 심비안, 타이젠(Tizen), 욜라(Jolla)등의 모바일과 임베디드 리눅스나 Windows CE같은 임베디드 영역과 VxWorks나 QNX등의 RTOS까지 지원하는 크로스플랫폼 프레임워크이다.

 

Qt는 GUI프로그램을 쉽게 제작할 수 있도록 풍부한 위젯들과 화려한 인터페이스를 제공한다. 

C++기반이기 때문에 C기반인 GTK+나 다른 툴킷들보다 사용이 쉽고, 완전 객체지향을 지원하므로 프로그램의 확장이 쉽고 컴포넌트 프로그래밍이 가능하다. 또한, GUI를 보다 쉽게 만들 수 있도록 QML(Qt Modeling Language)2언어를 제공한다. QML과 관련된 Quick의 성능 문제도 최적화를 통해 좋아졌으며 3D GUI 구현을 위한 Qt3D도 많은 발전을 거듭해나가고있다.

 

Qt의 라이센스는 다른 툴킷보다 자유롭다. 상업용 라이선스는 The Qt Company에 의해 판매되고 있으며 자유롭게 사용할 수 있도록 (L)GPL v3라이선스도 제공한다. 상업용 라이선스를 이용하면 무료 업그레이드와 기술지원 서비스를 제공받을 수 있고, QCS(Qt Service) 클라우드 서비스도 이용할 수 있다. 데스크탑이나 모바일, 임베디드에 사용할 수 있는 라이선스가 다른데, 라이선스와 관련된 사항은 Qt의 사이트를 참고하면 된다.

 

오픈소스로 관리되는 다른 리눅스용 툴킷들은 문제 발생 시 해결할 주체가 없는 문제가 있지만, Qt는 The Qt Company에 의해 관리되므로 개발 도구나 문서, 그리고 예제들이 체계적으로 관리되며, 상업용 라이선스를 통해 서비스를 받을 수 있다는 것도 큰 장점이다.

 

Qt는 임베디드나 모바일 같은 다양한 디바이스들을 지원하며, 최적의 성능을 낼 수 있도록 중요 부분을 모듈로 분리하여 제공한다. 아래는 Qt의 핵심 모듈들이다.

 

Core, GUI, Multimedia, Multimedia, Network, QML, Quick, Quick Controls, Quick Dialogs, Quick Layouts, SQL, Test, Widgets 등

 
최소 하드웨어 요구사항(Qt5.9 기준) :
256 MB of RAM
500 MHz CPU, 1 GHz preferred for 60-FPS velvet-smooth UI
OpenGL ES 2.0 support *
 
지원되는 개발 호스트 :
Ubuntu Linux 64-bit
Windows 7 32-bit and 64-bit
Windows 10 32-bit and 64-bit
Mac
 
이제 Qt에 대한 간단한 소개를 마치고 프로그래밍 개발환경을 준비해보자.
Qt프로그래밍을 위한 IDE(통합개발환경)로는 Qt Creator가 있다. 링크를 클릭하여 설치 해 보도록하자.

 

 


 

1: Qt는 초반까지만 하더라도 단순 GUI라이브러리 또는 툴킷정도로 인식되었으나 지금(Qt5.x대)은 어플리케이션 개발에 필요한 온갖 기능이 포함된, 그 규모가 아주 방대하여 프레임워크로 불리는게 더 어울린다. 

 

2: 정확히 어떤 의미인지 모른다고 한다. Qt Modeling Language라고도 하고 Qt Markup Language로도 불린다.

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85979
79 OpenGL 렌더링을 QtQuick과 통합하는 방법 file makersweb 2019.10.01 2182
78 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 2202
77 main함수 명령줄 옵션 해석 makersweb 2020.09.01 2232
76 QOpenVirtualkeyboard(Qt 5용 한글 및 영문, 숫자 가상키보드) file makersweb 2019.11.27 2243
75 [Qt News] Qt6 Git 개발 초기 단계 시작하기 j2doll 2019.08.02 2334
74 QtWayland와 ivi-compositor file makersweb 2018.12.27 2403
73 리눅스에서 Qt4.8기반 어플리케이션의 한글입력 file makersweb 2018.11.29 2443
72 Qt3D의 QML 타입으로 3D렌더링 file makersweb 2019.11.20 2530
71 구글 클라우드 Speech-To-Text API를 Qt기반(C++, Qml)테스트 [7] file makersweb 2019.01.20 2620
70 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 2628
69 QML에서 멀티 스레드(multithreading) 프로그래밍 file makersweb 2019.05.25 2659
68 UI 폼(Form)작성 시 탭 순서(Tab Order) 설정 file makersweb 2020.08.24 2790
67 컨테이너 클래스 - QVector makersweb 2020.03.17 2847
66 QTextCodec클래스를 사용하여 유니코드와 EUC-KR 변환 makersweb 2019.03.25 2893
65 다국어 지원 어플리케이션 개발 file makersweb 2018.01.27 2978
64 QString 문자열에서 숫자만 추출해서 QString으로 반환 makersweb 2017.01.10 3078
63 qbs 사용 방법(Helloworld) file makersweb 2019.10.23 3094
62 QML 코딩 규칙 makersweb 2021.09.05 3255
61 임의의 메모리 영역(QImage)에 QPainter를 이용하여 그리기 file makersweb 2017.12.19 3445
60 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 3516