"Code less. Create more. Deploy everywhere."
QT is a Cross-platform application and UI framework.
Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile and embedded operating systems without rewriting the source code.
1. What is QT?
- QT는 push button, menu, dialog와 같은 graphic object와
이것들을 구현하기 위해 필요한 함수들의 Library이다.
- graphic 객체들은 Widget이라고도 불리며 이 widget에 대응하는 함수들을 합한 것을 Toolkit이라 함.
- "Code less. Create more. Deploy everywhere."
- 노르웨이의 Trolltech에서 1996년 발표했음.
- 현재는 Nokia가 인수하여 운영중(http://qt.nokia.com)
- 완전한 객체지향을 구현하였음.(확장이 용이하고 real component programming이 가능함).
- Linux desktop의 기본 Library로 구성되어 있음(KDE의 기본 Library)
- 풍부한 양의 위젯 및 사용하기 쉽고 화려한 인터페이스를 제공함.
- 'Qt allows you to write advanced applications and UIs once,
and deploy them across desktop and embedded operating systems
without rewriting the source code - saving time and development cost.'
2. Available platform
- 다양한 platform을 지원
- 포팅이 자유로움.
단순히 해당 platform에서 재컴파일 하는 것으로 Unix/Mac/Win 환경에서 실행가능.
("Write Once, Compile Anywhere")
- Embedded Linux, Mac OS X, Windows, Linux/X11, Windows CE/Mobile, Symbian, Maemo를 지원.
3. MFC vs QT
- MFC는 윈도우 운영체제의 그래픽 툴킷(Graphical Toolkit)이다.
- Win32API는 C와 C++을 혼합해서 쓰고 있는 조금 약한 의미의 객체지향(Object oriented)이다.
- 반면 QT는 완전 객체 지향적이다.
4. Tool
- QT v4.6 이 현재 최신 버전임.(http://qt.nokia.com)
- LGPL version: window visual studio는 지원하지 않음.
- Commercial version: 30일 평가판.
5. Comment
- Linux용 GUI programming tool이라고 막연히 알고 있었으나, multi-platform용 개발툴임.
- 한마디로 일종의 MFC같은 것인데, 훨씬 잘 짜여진(보다 객체지향적인),
multi-platform용 개발툴이라고 이해됨.
- QT 홈페이지에서 표방하고 있는 문구는 확실히 개발자들에게 매력적으로 어필할 것 같다.
(Write code once to target multiple platform)
- 한번 작성한 코드가 윈도우, 리눅스, 윈모바일등 platform을 가리지 않고 적용 가능하며,
MFC보다 훨씬 모듈화 구성이 잘 되게 할 수 있으므로 팀내에서 응용할 수 있는
적절한 target을 찾아 적용한다면 다시말해, 세가지 part에 공통 분모로 작용할만한 툴이
무엇이 있을지 고민하고 이를 개발한다면 꽤 의미 있는 작업이 될 것 같다.
아래는 참고 site
-Programming School,
http://php.chol.com/~valentis/Suhdang/QT_Programming/Lecture_1.html
-MFC vs. QT in detail
http://phil.freehackers.org/kde/qt-vs-mfc.html
-QT/S60 베타로 프로그램 짜보기
http://blog.peremen.name/?page=9#entry266Comment
[footnote]deploy: 효율적으로 사용하다.[/footnote]
댓글 없음:
댓글 쓰기