돌아다니는 calibrate 를 qt4 버전으로 변경해서 포팅했더니
마우스 이벤트 인식을 못하드라
따로 놀고 ~~

그래서 일단은 x-window를 죽여놓구 (.sh 파일에 가서 X로 시작하는 것을 #주석처리 해줬더니
안뜨게 됐다. x-window를 띄우면 단독으로 실행되는 qt와 충돌을 일으켜서 터치 할때 이미지가 깨지게 된다.) 왜 안될까 왜 안될까 정말 마니 고민하다 나온 결론,

터치 드라이버를 export 해줘야 하는데
.sh 파일에 해줬는데 안먹히고 ...
echo $QWS_MOUSE_PROTO
했더니 아무것도 뜨지 않는 것이었다 ㅠ.ㅠ
그래서 실행될 폴더에서 export 다시 해줬다
export QWS_MOUSE_PROTO=linuxtp(이거는 지원하는 터치 스크린 라이브러리마다 다를 수 있다.)

그리고 실행하니까 , 허거덕 돼버렸다!!!!
자동실행을 위해서 .sh 파일에 명령을 모두 적어주고
reboot 하니까 오호라 ~ 떠버리네
근데 마우스 이벤트가 됐다가 안됐다가
boot하면 안됐다가 reboot하면 됐다가
알고보니 지 맘대로였다 ;; ㅎㅎㅎ;;
왜 그런지 좀 더 조사해봐야할듯 싶다

무튼, QTOPIA4 라이브러리 사용해서 컴파일하면 큰 문제 없이 calibrate 가 생성된다.
calibrate.h 에서 필요한 헤더
#include <qmouse_qws.h>
는 그대로 둔다. qtopia4에서는 /qt-arm(qt폴더)/src/gui/embedded/에 들어가 있다.
#include <QWidget>
#include <QPixmap>
#include <QMouseEvent>

이것만 있으면 되고
클래스 선언된 곳에 Calibrate(QWidget* parent=0, Qt::WindowFlags=0);
으로 바꿔준다. qt3 버전에는 인자값이 세개 일 것인데 중간 값 없애주고 끝에 WFlags 를 저렇게 바꿔준다.


그리고 calibrate.cpp 에서는
#include <QApplication>
#include <QtGui>
#include <qwindowsystem.qws.h>
#include <QScreen>
#include <stdlib.h>
#include "calibrate.h"

수정할 곳은 생성자에서 인자 값을 바꿔주고
생성자에서
Calibrate::Calibrate() : QWidget(=>여기 있는 값 중에 W어쩌구 | W저쩌구 | 이런 옵션들이 있다.) {
}

저런 옵션은 안찾아봤는데 widget 창 설정을 바꿔주는 것이므로 사용할 사람들만 찾아서 쓰자
마찬가지로 Qt::어쩌구로 바뀌었다. doc.trolltech.com 에서 클래스 찾아보면 나올 것이다.

QRect desk = qApp->desktop()->geometry();
라고 되어 있는 부분을
QRect desk = qApp->desktop()->screenGeometry()로 바꿔준다.
그리고 setBackgroundColor() 이 함수는 존재 하지 않는다.
난 그냥 안 썼다.

QABS 함수는 qAbs 로 바꾼다.
그리고 QBrush() 라는 함수에서 컬러는 Qt::red 이런식으로 줘야 한다.



main.cpp

#include <QApplication>

중간에 set 어쩌구 하는 것은 빼라 존재 하지 않는다.


이 정도로 수정했다.

그리고 위에 적은거 처럼 맞는 드라이버 명(나의 경우는 linuxtp)를 꼭 export 해줘서
보드에서 드라이버를 읽을 수 있게 해주어야 한다.

+ Recent posts