• 검색 결과가 없습니다.

Qt 어플리케이션 작성

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 151-156)

9. QT/E

9.7. Qt 어플리케이션 작성

Qt 는 C++을 이용하여 프로그램을 작성한다. 먼저 C++에 자신이 없다면 먼저 C++을 익 히도록 한다. 또한 MFC나 Java와 비슷한 구조를 가지고 있으므로 이에 경험이 있다면 쉽 게 이해할 수 있으리라 본다.

다음은 가장 먼저 시작하는 프로그램인 “Hello World” 출력 프로그램을 제작하는 과정이 다.

- main.cpp

#include <qapplication.h> //qt 어플리케이션을 제작하는데 필요한 기본 헤더

#include <qwidget.h> //위젯의 생성과 사용에 관한 헤더

class SampleWidget : public QWidget //하나의 위젯을 상속 받음 {

public :

//타이틀 바에 글자를 출력하는 메소드 호출 setCaption(“Hello World”);

int main(int argc, char **argv) {

//Qt 라이브러리를 사용하는 어플리케이션 생성 QApplication app(argc, argv) ;

//보여줄 위젯의 객체 생성 SampleWidget sw;

//어플리케이션의 기본(화면) 위젯으로 sw지정 app.setMainWidget(&sw);

//화면사이즈 지정 sw.resize(150,100);

//실제 화면을 보여주는 메소드 호출 sw.show();

//제어를 어플리케이션에게 맡긴다.

return app.exec();

소스 파일 안에 이해가 쉽도록 각 라인 마다 주석을 달아 놓았다. 좀더 자세한 내용을 원 하면 관련 서적 및 인터넷 강좌 등을 참고 하기 바란다.

제작된 main.cpp의 컴파일 하기 위해 먼저 프로젝트 파일을 생성한다.

progen -o hello.pro main.cpp

hello.pro가 만들어 졌다면 tmake를 이용해서 Makefile을 생성한다.

tmake -o Makefile hello.pro

이상 없이 make파일이 만들어 졌다면 make 한 후 qvfb를 띄운 후 다음과 같이 실행한다.

./hello -qws

9.8. Qt 포팅

제작된 프로그램을 실제 EMPOS 보드를 이용해서 테스트 하기 위해서는 ARM용으로 컴파 일을 해야 한다. 그러기 위해서는 다음과 같이 tmake 설정을 바꾸고 환경설정을

/working/qte-arm/qte-2.3.2/qte_env로 다시 설정해야 한다.

export TMAKEPATH=/usr/local/tmake-1.8/lib/qws/linux-arm-g++

테스트는 2가지 방법이 있는데 하나는 직접 램 디스크 등을 수정해서 포팅하는 방법이고 나머지는 nfs를 이용하여 Host PC의 파일을 EMPOS에서 공유하여 실행하는 방법이다. 여 기서는 nfs를 이용해서 테스트 하는 방법을 설명한다.

우선 컴파일 된 ARM용 Qt/E 라이브러리를(/working/qte-arm/qte-2.3.2/lib)를 nfs 디렉터 리인 /nfs_resource에 복사한다.

cp -rf /working/qte-arm/qte-2.3.2/lib /nfs_resource

다음으로 minicom을 실행시키고 EMPOS를 부팅한다.

부팅이 완료되었으면 nfs연결을 위해 minicom에서 아래와 같이 수행한다.

mount 192.168.123.100:/nfs_resource /mnt cd /mnt

nfs설정방법은 이전에 설명을 하였으며 192.168.123.100는 Host PC의 IP주소를 말한다.

다음으로 환경설정을 통해 보드에서 Qt가 실행 가능하도록 한다.

export QTDIR=/mnt/

export LD_LIBRARY_PATH=/mnt/lib/:$LD_LIBRARY_PATH

위와 같은 과정이 모두 이상 없이 진행되었다면 테스트를 위해 작성한 hello프로그램을 nfs_resource 디렉터리로 이동 시킨 후 다음과 같이 실행하면, 보드의 LCD창에 qvfb에서 보는 것과 같이 보일 것 이다.

./hello -qws

10. Qtopia

TrollTech사에서 만든 Qtopia를 이용해서 마치 PDA화면을 보는 것과 같은 icon들이 출력 되는 윈도우 매니저를 구현할 수 있다. Qtopia는 기존에 컴파일 하였던 Qt/E와 의존적으 로 동작을 하므로 Qtopia를 구현하기 위해선 Qt/E를 변경 후 다시 컴파일 해야 한다.

10.1. x86 용 Qtopia 설치

보드에 포팅 되기 전 테스트 용으로 사용되는 x86용 Qt/E에 Qtopia를 포함 하는 과정이 다. 먼저 제공된 CD로부터 Qtopia 압축 소스 파일을 가져온다.

tar xvfz qpe-1.4.0.tar.gz

cp -rf qpe-1.4.0 /working/qte-x86/

추후 ARM용 Qtopia 또한 필요하므로 qte-arm 디렉터리 에도 복사를 해둔다.

cp -rf qte-1.4.0 /working/qte-arm/

Qt/E가 Qtopia를 지원하기 위해 Qtopia의 헤더 파일을 복사해 온다.

cd /working/qte-x86/qte-2.3.2/src/tools

cp /working/qte-x86/qpe-1.4.0/qt/qconfig*.h ./

Qtopia를 컴파일 하기 위해선 uic프로그램이 필요한데 이는 Qt/X11 컴파일시 생성된 것 을 사용한다.

cp /working/qtx-2.3.2/bin/uic /working/qte-x86/qte-2.3.2/bin Qt/E에 대한 환경 설정 파일을 만들고 적용한다.

- /working/qte-x86/qte-2.3.2/qte_env export QTDIR=/working/qte-x86/qte-2.3.2 export QPEDIR=/working/qte-x86/qpe-1.4.0

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 파일을 생성 또는 수정이 완료되었으면 환경 적용을 한다.

source qte_env

이제 x86용 Qt/E에서 Qtopia를 사용할 수 있는 모든 준비를 마쳤다 configure와 make를

configure를 실행 시 출력되는 질문에 ‘yes’, ‘16’, ‘yes’를 입력한다.

Qt/E가 성공적으로 다시 컴파일 되었다면 Qtopia의 컴파일에 들어간다.

Qtopia설정 파일을 다시 만들고 적용한다.

cd /working/qte-x86/qpe-1.4.0/qpe_env export QTDIR=/working/qte-x86/qte-2.3.2 export QPEDIR=/working/qte-x86/qpe-1.4.0

export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/library:$LD_LIBRARY_PATH 환경설정을 마쳤으면 Qtopia를 컴파일 한다.

cd $QPEDIR ./configure make

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 151-156)