日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT移植多点触控

發布時間:2023/12/16 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT移植多点触控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注:本方法只在S5P4418平臺,Qt版本:5.4.1?編譯器:arm-cortex_a9-linux-gnueabi-gcc-4.7.4下試驗成功,其他平臺未做測試,不同的qt和工具鏈版本之間會有一定的差異。

前提是觸摸屏的硬件及驅動是支持多點觸摸的(evtest程序測試)。

1、編譯之前準備

  • tslib-mt.tar.gz? ?多點觸控校準程序 下載
  • mtdev-1.1.5.tar.gz? 多點觸控所用的中間件 下載
  • qt5.41源碼 程序? ? 下載地址?http://download.qt.io/archive/qt/5.4/5.4.1/single/
  • 2、編譯tslib-mt.tar.gz

    解壓縮文件:tar -xvf? ?tslib-mt.tar.gz

    ./autogen-clean.sh ./autogen.sh ./configure --host=arm-cortex_a9-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-cortex_a9-linux-gnueabi.cache --prefix=/usr/local/tslib_mt make make install

    運行結果如下圖所示,說明編譯安裝成功:

    查看安裝目錄?/usr/local/tslib_mt 是否安裝成功。

    3、編譯mtdev-1.1.5?

    解壓縮 tar -xvf mtdev-1.1.5.tar.gz

    ./autogen.sh ./configure --prefix=/usr/local/mtdev --host=arm-linux CC=arm-cortex_a9-linux-gnueabi-gcc make clean make make install

    運行結果如下圖所示,說明編譯安裝成功:

    查看/usr/local/mtdev 目錄是否存在。如若存在說明安裝成功。

    4、編譯Qt5.41源碼

    編譯qt時間比較長,大概在2個小時左右,根據個人機器配置而定。

    解壓縮源碼文件

    tar -xvf??tar -xvf qt-everywhere-opensource-src-5.4.1.tar.gz?

    export PKG_CONFIG_PATH=/usr/local/tslib/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH export TSLIB_ROOT=/usr/local/tslib export PKG_CONFIG_SYSROOT_DIR=/ export PKG_CONFIG_LIBDIR=/usr/local/mtdev/lib/pkgconfig export PKG_CONFIG_LIB=/usr/local/mtdev/lib/pkgconfig./configure \ -release \ -confirm-license \ -opensource \ -xplatform linux-arm-gnueabi-g++ \ -prefix /usr/local/qt5.4.1-A9 \ -no-c++11 \ -no-opengl \ -no-iconv \ -dbus \ -mtdev \ -make examples \ -I /usr/local/mtdev/include \ -L /usr/local/mtdev/lib -lmtdev make distclean make make install

    一定要上面編譯的“tslib”和“mtdev”的庫的路徑配置正確。

    編譯過程中第1個錯誤:

    執行? gedit??qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf?

    修改為

    # # qmake configuration for building with arm-linux-gnueabi-g++ #MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf)# modifications to g++.conf QMAKE_CC = arm-cortex_a9-linux-gnueabi-gcc QMAKE_CXX = arm-cortex_a9-linux-gnueabi-g++ QMAKE_LINK = arm-cortex_a9-linux-gnueabi-g++ QMAKE_LINK_SHLIB = arm-cortex_a9-linux-gnueabi-g++# modifications to linux.conf QMAKE_AR = arm-cortex_a9-linux-gnueabi-ar cqs QMAKE_OBJCOPY = arm-cortex_a9-linux-gnueabi-objcopy QMAKE_NM = arm-cortex_a9-linux-gnueabi-nm -P QMAKE_STRIP = arm-cortex_a9-linux-gnueabi-strip load(qt_config)

    編譯過程中第2個錯誤:

    執行

    gedit ./qtwebkit/Source/WTF/wtf/unicode/wchar/UnicodeWchar.h? 進行修改代碼,修改為如下格式
    ?

    #ifndef Android/*add by gaven */#include <wctype.h>typedef unsigned short int UChar;/*add by gaven *///# include <wchar.h>// typedef wchar_t UChar;#elsetypedef unsigned short int UChar;#endif

    大概一個小時左右,編譯完成。查看/usr/local/下是否有編譯完成的 qt5.4.1-A9文件,如若存在,說明編譯成功。

    ?

    5、測試驗證

    將生成的庫移植到開發板上面

    啟動QT程序時環境配置(根據自己實際庫存在的路徑進行操作

    export LD_LIBRARY_PATH=/usr/qt/lib:$LD_LIBRARY_PATH? ? ? ? ? #配置qt庫路徑
    export QT_QPA_FONTDIR=/app/fonts??????????????????????????????????????????????#配置字體路徑
    export DISPLAY=:0??????????????????????????????????????????????????????????????????????????????

    export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt/plugins????#插件路徑
    export QT_QPA_GENERIC_PLUGINS=EvdevTouch
    export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1 #觸摸屏的驅動的設備節點

    將生成的Qt庫中的測試程序,將下面兩個程序拷貝至開發板中運行

    /usr/local/qt5.4.1-A9/examples/touch/pinchzoom/pinchzoom??? //放大縮小

    /usr/local/qt5.4.1-A9//examples/touch/fingerpaint/fingerpaint???? //多個手指同時劃線

    總結

    以上是生活随笔為你收集整理的QT移植多点触控的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。