'qt'에 해당되는 글 1건

  1. 2007/10/18 QT Designer를 이용한 임베디드 QT 어플리케이션 개발

QT Designer를 이용한 임베디드 QT 어플리케이션 개발

|

요즘 한창 임베디드 관련 개발자가 늘어나는 것 같습니다.
최근에 포스팅을 못했는데, QT관련 포스팅을 요청하셔서 이렇게 키보드를 두드리게 되네요.

환경 :
HOST PC - REDHAT FEDORA CORE 4, QT 기본설치 패키지 (Designer 포함)
EMBEDDED - QTE-3.3.3 및 LCD Calibration

:: 참고 :: 하이버스 社 홈페이지
Hybus -
http://www.hybus.net


우선 QT는 트롤테크(Trolltech)에서 개발된 임베디드용 GUI 툴킷입니다.

임베디드 리눅스 환경에서 개발이 가능한 개발 도구이며,
과거 GTK+보다는 발전된 방향으로 진화하고 있습니다.

QT의 가장 강력한 부분은 모든 플랫폼을 지향한다는 점입니다.
많은 분들이 JAVA의 VM을 떠올리실텐데요,
VM을 통해 인터프리팅을 하는 것이 아니고 개발 단계에서 GUI부분을 XML로 제작하여,
Implementation 코드로 변환하게 되는데, 그 단계에서 사용하는 프로그램이 OS마다 제공되어
같은 코드로 다른 컴파일을 통해 모든 플랫폼을 지원할 수 있도록 합니다.

사용자 삽입 이미지

제가 생각하는 QT의 개발과정은 다음과 같습니다.


[1] QT Designer를 이용하여 UI를 개발합니다.

QT Designer는 아직 IDE라기 보다는 UI 개발을 위한 어플리케이션 입니다.
물론 Windows API 코딩과 같이, 일일이 코딩을 할 수 있겠지만
UI 부분에 많은 소비를 하기 싫은 제 성격상, QT Designer를 이용하여 UI를 개발합니다.

사용자 삽입 이미지


특히 QT Designer는 Signal/Slot의 정의가 가능하기 때문에
기본적인 위젯을 정의하고 Slot을 정의하고 Signal과 Connect 시킵니다.

개발한 UI는 *.ui라는 파일형식을 가지며 XML 형식으로 저장됩니다.
(Slot에 관련된 부분은 *.ui.h에 저장됩니다.)
최종 UI 디자인이 끝나면 XML로 저장된 *.ui 파일은 UIC라는 어플리케이션을 이용하여 헤더파일과 소스파일로 변환합니다.

:: 참고 :: QT Designer를 이용한 UI 개발
ResetBrain -
http://blog.naver.com/resetbrain/90009895055


[2] 추가 코딩이 필요한 부분(특히 RS232 관련 부분)이 있기 때문에 중간단계인 Implmentation Code를 생성합니다.

#uic form.ui > form.h
#uic -subdecl FormImpl form.h form.ui > formimpl.h
#uic -subimpl FormImpl formimpl.h form.ui > formimpl.cpp


이후 자신이 편한 Development Tool을 이용하여 개발을 수행합니다.
저는 기본적인 코딩은 VI 에디터에서 추가적인 코딩은 QT Designer에서 불러와서 수행하였습니다.

목적에 맞는 코딩을 수행한 후에 Makefile을 만들기 위해서는 추가적으로 main.cpp 파일과 Form.pro 파일이 필요합니다.

main.cpp는 현재 정의된 QT 클래스인 FormImpl의 생성자를 호출하여 객체를 만들고 제어권을 QT로 넘기는 작업을 수행합니다. main.cpp 파일 코딩은 QT 관련 문서가 많으니 참고하시고 개발하시면 됩니다.
Form.pro 파일은 Implementation 코드와 main 코드를 헤더파일과 소스파일에 선언한 파일입니다.


#vi Form.pro

TEMPLATE = app
CONFIG = qt_warn_on release
HEADERS = formimpl.h
SOURCES = main.cpp formimpl.cpp
INTERFACES = form.ui
TARGET = form



[3] 생성된 파일을 이용하여 Makefile을 제작합니다.

요즘에는 Makefile을 만들기 위하여 주로 TMAKE를 사용합니다만, 저는 XHYPER-255B를 구입한 HYBUS 社에서 제공한 QMAKE를 이용하여 Makefile을 만들었습니다.

#qmake - spec $QTEDIR/mkspecs/qws/linux-ipaq-t++/ -o Makefile Form.pro



[4] 만들어진 Makefile을 이용하여 컴파일하고 실행합니다.

#make
#./form -qws


QT Designer를 사용하려면 기본적으로 QT에 관련한 지식을 아셔야만 합니다.
아직까지 QT관련하여 서적도 부족하고, 정보도 부족하지만
조금만 공부하신다면 금방 익히실 수 있을 것입니다.

:: 참고 :: QT 관련 동영상 무료강좌
안양지식산업교육원 -
http://www2.k-center.or.kr/07-online/sub_list.asp?page=1&query=&search=&c_bul=lecture&c_id=1

오늘도  간단한 이 포스팅이 도움이 되었으면 합니다.



* 질문답변 및 참고
(1) uic를 실행하면, 기존 구현한 추가코딩 파일이 새 것으로 대치되므로 UI를 수정하려면 formimpl.h, formimpl.cpp 파일을 백업한 후 실행하셔야 합니다.

(2) 하이버스 社에서 제공한 qmake를 이용하고, form.h를 열어보면 include 부분이 class XX;로 처리되어 있습니다.
추가코딩을 할 때 formimpl.cpp에서 위젯을 참고하려면 소스를 바꿔주어야 합니다.
따라서 추가코딩을 하지 않은채로 [1]~[4]과정을 수행한 후, 생성된 form.cpp 부분에서
위젯의 inclue 부분을 잘라내어, form.h의 class XX;로 선언된 부분을 삭제하고 붙여줍니다.
make clean을 실행하면, form.cpp와 form.h가 삭제되니, 추가 코딩이후에는 make만을 실행하면 됩니다.

Trackback 0 And Comment 0
prev | 1 | next