QTE 觸控螢幕支援

2021-09-05 20:57:40 字數 2834 閱讀 1611

qte觸控螢幕載入有兩種方法:

(1)qte本身觸控螢幕載入;

主要注意三個內容:

編譯qte時,在其自定義配置檔案(位於qtdir/src/tools/qconfig-***.h,其***為自定義的名字,該特徵字可以在configure時用-qconfig ***指定)所應加的內容:

#define qt_qws_ipaq

#define qt_qws_ipaq_raw

去掉滑鼠自動識別功能 :#define qt_no_qws_mouse_auto

去掉不用的滑鼠驅動,(在實際中,這一步可以不要,但對於縮減qte的大小很有幫助),方法主要是在configure時設定配置引數為-no-mouse-pc -no-mouse-bus -no-mouse-yopy -no-mouse-vr41xx 。

以該編譯好的qte庫為基礎,編譯應用程式;

在目標機上,要將觸控螢幕驅動鏈結好。在qte3.0的版本中,如果定義了上述的兩個ipaq相關的巨集,其預設開啟裝置檔案/dev/h3600_tsraw。如果只定義qt_qws_ipaq,則開啟裝置檔案為/dev/h3600_ts。

在目標機上,設定環境變數:qws_mouse_proto=linuxtp:/dev/h3600_tsraw。

(2)使用tslib方法;

編譯tslib1.3:

進行如下操作

#./autogen.sh #生成configure檔案

cc= $arm_tool_path/arm-linux-gcc

cxx= $arm_tool_path/arm-linux-g++

./configure --host=arm-linux --target=arm-linux --disable-inputapi --prefix=$pwd/build

make

make install

將build的整個目錄拷貝到目標機,然後在目標機做如下設定,修改/etc/profile檔案,在其中加入以下環境變數的設定

export v_root=/***/***/build #目標機上build所在的路徑

export tslib_tseventtype=h3600 #設定型別為h3600,其主要是對著tslib中的裝置結構體定義,該定義要與觸控螢幕驅動中的一致

export tslib_consoledevice=none #設定控制台裝置為none,否則預設為/dev/tty。在tslib1.3原始碼中,只要不是none,它就會開啟$ (tslib_consoledevice)1,預設的為/dev/tty1的裝置,然後從中讀取console的可用設定。這樣可以避免出現「open consoledevice: no such file or directory kdsetmode: bad file descriptor」的錯誤

export tslib_fbdevice=/dev/fb0 #指定幀緩衝裝置

export tslib_tsdevice=/dev/touchscreen/0raw #指定觸控螢幕裝置節點檔案

export tslib_calibfile=$v_root/etc/pointercal #指定觸控螢幕校準檔案pintercal的存放位置

export tslib_conffile=$v_root/etc/ts.conf #指定tslib配置檔案的位置

export tslib_plugindir=$v_root/share/ts/plugins #指定觸控螢幕外掛程式所在路徑

編譯tslib1.4(tslib07072006)

進行如下操作:

echo "ac_cv_func_malloc_0_nonnull=yes" > tslib/arm-linux.autogen #為了防止出現undefined reference to `rpl_malloc' 錯誤

config_site=arm-linux.autogen ./configure cc=arm-linux-gcc cxx=arm-linux-g++ --host=arm-s3c2410-linux-gnu --target=arm-s3c2410-linux-gnu --disable-input --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld --prefix=$pwd/build

make

make install

將build的整個目錄拷貝到目標機,然後在目標機做如下設定,修改/etc/profile檔案,在其中加入以下環境變數的設定。其解釋類上,不同於tslib1.3的是,tlib1.4通過配置檔案ts.conf中module_raw h3600語句來載入對應的裝置結構體定義。已廢除了tslib_tseventtype巨集。

export v_root=/***/***/build

export tslib_tsdevice=/dev/touchscreen/0raw

export tslib_calibfile=/etc/pointercal

export tslib_conffile=$v_root/etc/ts.conf

export tslib_plugindir=$v_root/lib/ts

export tslib_consoledevice=none

export tslib_fbdevice=/dev/fb0

乙個值得注意的問題是:tslib1.4在ts_config函式中通過while((p=fgets(buf,buff_size,f))!=null)來載入ts.conf中的語句,而buf只有512byte。所以對於ts.conf沒有用的定義語句,請將其刪除,以防止誤發生段錯誤。

以tslib庫為基礎,編譯qte。

QT E觸控螢幕支援

1.建立qt e交叉編譯環境 這部分我其它的文章有 2.在src tools qconfig local.h中加入 如果沒有該檔案則重建乙個 define qt qws ipaq define qt qws ipaq raw define qt no qws cursor define qt no ...

QTE 觸控螢幕支援

qte觸控螢幕載入有兩種方法 1 qte本身觸控螢幕載入 主要注意三個內容 編譯qte時,在其自定義配置檔案 位於qtdir src tools qconfig h,其 為自定義的名字,該特徵字可以在configure時用 qconfig 指定 所應加的內容 define qt qws ipaq d...

QT E程式接受觸控螢幕輸入的問題

qt e程式接受觸控螢幕輸入的問題 我的問題 我把qt4.7.0移植到開發板 mini2440 執行qt demo程式,觸控螢幕可以移動滑鼠,但是不可以點下去,沒有反應。說明 單獨的tslib測試程式是沒有問題的。而且交叉編譯qt的時候也加入了tslib的庫和標頭檔案,i usr local tsl...