'develop/qt4'에 해당되는 글 16건

  1. 2011.05.02 [qt4] sql next() 주의
  2. 2011.04.15 타켓 보드에서 이미지 표시 하기 (문제해결)
  3. 2011.04.05 [qt4] widget background color 지정
  4. 2011.03.31 [qt4] qt4.7.2 cross compile for S3C6410 + Phonon
  5. 2011.03.31 [qt4] background color 설정하기(embedded)
  6. 2011.03.31 [qt4] QWidget::mousePressEvent(QMouseEvent *event) QWidget::mouseReleaseEvent(QMouseEvent *event) QWidget::mouseMoveEvent(QMouseEvent *event)

[qt4] sql next() 주의

QSqlQuery 을 사용해서 쿼리에 대한 결과 값을 seek할 때 next()나 previous() 메서드를 사용하게 되는데,
레코드를 다시 탐색하게 될 때를 대비해서 항상 seek을 끝내고 나면 first()을 이용해서 처음의 레코드를 가리키도록 해야 한다.

타켓 보드에서 이미지 표시 하기 (문제해결)

타켓보드에서 jpg등과 같은 이미지를 표시하기 위해서는 타켓보드용으로 크로스 컴파일 된 plugin들이 필요하다.(libjpeg, libpng등을 qt4 내장으로 툴체인을 만들었을 경우)
이런 경우에는 plugin에서 필요한 라이브러리들을 타켓보드에 동일한 위치에 복사해서 넣어주도록 한다.

'develop > qt4' 카테고리의 다른 글

[qt4] label 배경색 입히기  (0) 2011.05.02
[qt4] sql next() 주의  (0) 2011.05.02
[qt4] widget background color 지정  (0) 2011.04.05
[qt4] qt4.7.2 cross compile for S3C6410 + Phonon  (0) 2011.03.31
[qt4] background color 설정하기(embedded)  (0) 2011.03.31

[qt4] widget background color 지정

QPalette palette;
palette.setColor(this->backgroundRole(), Qt::black);
setPalette(palette);

* background을 이미지로 지정
QPixmap *pm = new QPixmap();
pm->load("test.jpg");
palette.setBrush(this->backgroundRole(), QBrush(*pm) );
setPalette(palette);

[qt4] qt4.7.2 cross compile for S3C6410 + Phonon

  • 파일 내용 수정
    • mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
QMAKE_CC                = arm-generic-linux-gnueabi-gcc
QMAKE_CXX               = arm-generic-linux-gnueabi-g++
QMAKE_LINK              = arm-generic-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-generic-linux-gnueabi-g++
QMAKE_AR                = arm-generic-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-generic-linux-gnueabi-objcopy
QMAKE_STRIP             = arm-generic-linux-gnueabi-strip
QMAKE_RANLIB            = arm-generic-linux-gnueabi-ranlib
  • configure options
    • ./configure -prefix [dir] -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16 -qt-mouse-tslib -xplatform qws/linux-arm-gnueabi-g++ -no-neon
    • 현재 내 시스템에서 prefix는 /app/qt4-arm 이다.
  • 개발 환경값 설정 스크립트
#!/bin/sh
export QTDIR=[dir]
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTINC=$QTDIR/include
export QTLIB=$QTDIR/lib
export qt_prefix=$QTDIR

  • tslib 사용하기 위한 설정값
    • export QWS_MOUSE_PROTO="tslib:/dev/input/event1"
      • 장치에 대한 정보는 /proc/bus/input/devices에서 찾을 수 있다.



+Phonon 같이 cross compile 하기
위와 같이 qmake.conf을 변경한 상태에서 진행

 ./configure -prefix $PWD/_install -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16 -qt-mouse-tslib -xplatform qws/linux-arm-gnueabi-g++ -no-neon -multimedia -phonon -audio-backend -phonon-backend -webkit  -v -I/usr/arm-generic-linux-gnueabi/include/glib-2.0 -I/usr/arm-generic-linux-gnueabi/lib/glib-2.0/include -L/usr/arm-generic-linux-gnueabi/lib -lgthread-2.0


위 옵션으로 진행 중...
현재 Gstreamer관련 에러가 난 상태다 아래는 해당 오류 메세지다
arm-generic-linux-gnueabi-g++ -Wl,-O1 -Wl,-rpath,/app/qt4-arm/lib -o glib glib.o     -L/usr/arm-generic-linux-gnueabi/lib -lgthread-2.0
Glib enabled.
GStreamer auto-detection... ()
arm-generic-linux-gnueabi-g++ -c -pipe -O2 -Wall -W  -I../../../mkspecs/qws/linux-arm-gnueabi-g++ -I. -I/usr/arm-generic-linux-gnueabi/include/glib-2.0 -I/usr/arm-generic-linux-gnueabi/lib/glib-2.0/include -o gstreamer.o gstreamer.cpp
gstreamer.cpp:42:21: error: gst/gst.h: No such file or directory
gstreamer.cpp:43:42: error: gst/interfaces/propertyprobe.h: No such file or directory
gstreamer.cpp:44:37: error: gst/interfaces/xoverlay.h: No such file or directory
gstreamer.cpp:48:4: error: #error "No GST_VERSION_* macros"
gstreamer.cpp:53: warning: unused parameter 'argc'
gstreamer.cpp:53: warning: unused parameter 'argv'
make: *** [gstreamer.o] 오류 1
GStreamer disabled.

gstreamer 까지 컴파일 완료

gstreamer과,  gst-plugins-base 까지  컴파일 완료 후 재도전

 ./configure -prefix $PWD/_install -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16 -qt-mouse-tslib -xplatform qws/linux-arm-gnueabi-g++ -no-neon -multimedia -phonon -audio-backend -phonon-backend -webkit  -v -I/usr/arm-generic-linux-gnueabi/include/glib-2.0 -I/usr/arm-generic-linux-gnueabi/lib/glib-2.0/include -L/usr/arm-generic-linux-gnueabi/lib -lgthread-2.0 -I/usr/arm-generic-linux-gnueabi/include/gstreamer-0.10 -I/usr/arm-generic-linux-gnueabi/include/libxml2 --force-pkg-config

주의!!!
configure 을 하기 전에 PKG_CONFIG_PATH을 설정해 줘야 한다.
export PKG_CONFIG_PATH="/usr/arm-generic-linux-gnueabi/lib/pkgconfig:/app/lib/pkgconfig"

./configure -prefix $PWD/_install -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16 -qt-mouse-tslib -xplatform qws/linux-arm-gnueabi-g++ -no-neon -multimedia -phonon -audio-backend -phonon-backend -webkit  -v -force-pkg-config -I/usr/arm-generic-linux-gnueabi/include/glib-2.0 -I/usr/arm-generic-linux-gnueabi/include/gstreamer-0.10 -I/usr/arm-generic-linux-gnueabi/include/libxml2

* gsteramer-0.10 include, lib 설정 방법 변경
./configure -prefix /app/qt4-arm -embedded arm -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-nis -no-cups -qt-freetype -depths 16 -qt-mouse-tslib -xplatform qws/linux-arm-gnueabi-g++ -no-neon -multimedia -phonon -audio-backend -phonon-backend -webkit  -v -force-pkg-config -I`/usr/arm-generic-linux-gnueabi/bin/pkg-config --cflags gstreamer-0.10`

[qt4] background color 설정하기(embedded)

위에 표시한(붉은 사각형) 부분은 widget을 제외한 부분으로 설정없이 타켓보드에서 프로그램을 띄우게 되면 자동으로 녹색으로 표시하게 되어 있다.
이 부분을 변경하고 싶으면, main()함수에서 아래와 같이 정의 하면 된다.

QWSServer::setBackground(Qt::black);

[qt4] QWidget::mousePressEvent(QMouseEvent *event) QWidget::mouseReleaseEvent(QMouseEvent *event) QWidget::mouseMoveEvent(QMouseEvent *event)

위젯에 마우스와 관련된 이벤트가 발생하면 호출되는 함수로, 오버라이딩해서 사용한다.
 
prev 1 2 next