검지발가락이 정리한 임베디드 리눅스/GUI QT 강의 내용
Windows와 Linux 양쪽의 플랫폼에서 동작 가능하게 하기 위해 노르웨이의 TrollTech의 두 명의 창업자에 의해 개발이 시작되었음.
1.중점 설계 사항
․ 각 플랫폼별 라이브러리를 따로 작성
․ 개발자는 플랫폼 의존적인 부분을 신경쓰지 않고 고 수준 API만을 쓰도록 지원
․ C++을 기반으로 작성
1)장점
․ 세련된 UI 디자인
․ 16년의 오래된 역사 만큼 안정성 보장
․ 풍부한 레퍼런스 및 기술 문서 제공
․ GPL 라이선스 및 QPL 상업용 라이선스로 제공
․ 빠른 버그 패치
․ 국제화 지원 - Uicode 지원
․ 다른 GUI 툴킷에 비해 코드량이 적음
․ 처음 접하는 개발자돠 쉽게 익히고 활용 가능
2)단점
․ 해외와 달리 국내에서는 부족한 개발 저변
․ 상업용을 위해서는 라이선스를 구입해야 함.
․ C++ 및 MOC로 인한 느린 컴파일 속도
․ GTK+에 비해 상대적으로 큰 용량이 필요.
3)활용 분야
․ KDE프로젝트
․ PMP나 스마트 폰등을 통해 해외에서 상용화 되었음
4)특징
(1)멀티 플렛폼 C++ GUI ToolKit
․ 해당 플랫폼에서 재컴파일 하는 것으로 유닉스/윈도우/Mac/Embedded 환경에서 실행가능
(2)C++ 기반 객체 지향 클래스 라이브러리
․ QT 모든 구현이 C++ Class로 캡슐화하여 사용이 용이하고 상속을 이용하여 확장 기능
(3)국제화 기능 지원(2.0부터 | 18n 기본 제공)
․ 유니코드 지원
․ QT Languist를 통해 메시지의 번역이 쉬움 (QT3.0이후)
(4)Opne Source
․ 모든 소스가 오픈되어 있음.
․ 필요에 따라 Library Customizing 이나 debugging 가능
(5)Signal / Slot 메커니즘
․ 객체의 신호를 다른 객체 슬롯에 연결함으로써 프로그램 동작을 결정
(6)표준 GUI를 구성할 수 있는 풍부한 Widget
․ 표준 User Interface(Push button, list, menu, checkbox..) 모두 제공
․ 표준 Look 과 Feel을 제공(Theme 기능 제공)
(7)QT용 font 지원
․ qpf라는 QT용 폰트 지원
․ 사이즈 작고 속도 빠름
(8)멀티 Thread 지원
․ QThread 라는 쓰레드 클레스를 지원하여 쓰레드 프로그램 작성이 쉬움
(9)비디오 프레임 버퍼 직접 액세스 하여 Display 기능 수행
․ Qt/E 라이브러리가 직접 프레임 버퍼를 제어함.
(10)타 GUI 툴킷에 비해 적은 코드량
․ 텍스트 문자가 흘러가는 위젯을 작성하기 위한 코드 작성시
․ MOTIF : 224라인
․ MFC : 164라인
․ Qt : 64라인
2.
1)Qtopia
․ Qt/Embedded 기반으로 만들어진 Window Manager(WM)로서 콘솔 상에서 실행하는 Qt/E 어플리케이션 MS-windows처럼 윈도우 상의 아이콘을 클릭하여 실행 할 수 있는 환경 제공
․ WM 기능 뿐만 아니라 Qt/E 기반으로 여러 가지 어플리케이션을 포함하고 있으므로 Qtopia를 타겟보드에 포팅하여 PDA를 위한 WM 기능 구현
2)Qt Designer
․ GUI 프로그램의 초기 디자인 Tool
․ 각 GUI 위젯의 속성 설정
․ 간단한 코드 입력
․ 저장시 .ui 라는 xml 형태의 파일로 저장됨
3.
Qt x11 |
QT-embeded | |
qtx |
qte |
qta |
x86 |
x86 |
ARM |
qvfb |
가상 버퍼를 만든 뒤 애뮬레이터 사용시.
qvfb가 사용된 |
library 추출하여 보드에 이식. |
uic | ||
moc | ||
qmake |
1) uic
․ ui. 파일을 컴파일 가능한 .cpp 및 .h로 추출해주는 Tool
․ Xml 형태의 .ui파일을 분석하여 소스형태로 추출
․ uic 출을 이용한 소스 파일 추출 예제
2)MOC (Meta Object Compiler)
․ Qt 만의 SIGNAL/SLOT 문법은 C++에서 제공해 주지 않기 때문에 내부적으로 미리 처리하기위한 코드(Preprocessor)를 작성해야 함.
․ 원본소스의 헤더 파일 분석하여 자동으로 추가적인 소스파일(moc_기존파일명.cpp)을 생성함.
․ 원본소스 헤더파일내의 QOBJECT라는 매크로가 선언되어 있어야함.
․ slots 함수 및 signal 함수들을 파싱하여 새로운 소스파일을 생성함.
4)QMAKE
․ UIC/MOC등 복잡한 컴파일 절차를 간소화 하기위해 만들어짐.
․ 소스파일들에 대한 프로젝트 파일(.pro) 생성과 Makefile 생성의 두 가지 기능을 가짐.
․ qmake 실행 디렉토리내의 소스파일들과 디자인 파일(.ui)을 검색하여 프로젝트 파일을 생성해줌
․ 프로젝트 파일을 이용하여 Makefile을 생성함.
․ 프로젝트 파일 생성 예
․ Makefile 생성 예
5)QVFB(Qt Virtual Frame Buffer)
․ x86 리눅스 상에 가상의 프레임 버퍼를 만들어 줌.
․ x86 상에서 작성된 Embedded Qt 프로그램을 테스트 할 수 있음.
․ 가상의 프레임 버퍼이기 때문에 실제로 Embedded 장비에서도 똑같이 동작한다고 보장하기 힘듬.
․ QPF 폰트를 생성하기 위해서는 반드시 필요.
'공대생의 일기 > Embedded' 카테고리의 다른 글
[QT]qt3환경설정 (0) | 2010.12.28 |
---|