国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Qt5在ARM平臺移植的關鍵技術實現(xiàn)

2018-09-18 09:56王春陽張家坤楊海濤
數(shù)碼設計 2018年2期
關鍵詞:環(huán)境變量觸摸屏嵌入式

王春陽,張家坤,楊海濤

(北方民族大學,計算機科學與工程學院,寧夏銀川,750021)

引言

隨著嵌入式系統(tǒng)的發(fā)展,在Linux下使用Qt開發(fā)嵌入式圖形用戶界面是嵌入式應用的重點[1]。Qt面向嵌入式系統(tǒng)圖形用戶界面的應用程序開發(fā)框架,其庫采用C++封裝,完全面向對象,可移植性好[2],所以許多廠家都在使用Qt做為開發(fā)平臺,但是在從Qt4到Qt5的大版本更新中取消了QWS,使用了自己觸控模塊,導致Qt5無法在某些ARM平臺更改屏幕顯示方向,并且導致tslib作為觸控輸入的設備觸控失靈。對于工業(yè)應用而言,人們習慣使用橫屏顯示并且使用tslib作為觸控輸入。Qt5在以上功能的改動導致許多開發(fā)人員在硬件選型上不得不更換對應的硬件,增加開發(fā)成本。由此可見,使 Qt5在ARM平臺實現(xiàn)屏幕旋轉和校準tslib觸控是非常重要的。

1 技術實現(xiàn)原理

1.1 屏幕翻轉實現(xiàn)原理

使用 Qt5中的 QGraphicsScene、QGraphicsProxyWidget、QGraphicsView類的相應函數(shù)實現(xiàn)屏幕翻轉。這些類的主要功能如下:

QGraphicsScene對象是QGraphicsItem對象的容器[3],主要功能如下:

(1)提供管理大量圖元的快速接口。

(2)傳播鼠標、鍵盤等事件給場景中的每個圖元。

(3)管理圖元狀態(tài),如圖元選擇和焦點處理。

(4)提供無變換的渲染功能,如打印。

將需要旋轉的窗口加入QGraphicsScene場景中,用QGraphicsProxyWidget代理QGraphicsScene,并且利用QGraphicsProxyWidget的旋轉函數(shù)旋轉90度或者270度。下面是流程圖:

圖1 屏幕翻轉流程圖

1.2 觸控校準實現(xiàn)原理

tslib 是觸摸屏應用級的一個程序庫,用來封裝底層的觸摸屏驅動的操作[4]。因為在Qt4中只要配置好tslib的絕對路徑與頭文件和庫的路徑就可以使用tslib,但是Qt5增加了自己的觸控模塊,所以要使用tslib必須開啟tslib模塊并且需要額外增加tslib的一個庫才可以正常使用tslib作為觸控輸入。

2 具體實施方法

2.1 屏幕翻轉實施方法

(1)聲明QGraphicsScene類的對象:

QGraphics Scene*scene = new QGraphicsScene;

(2)聲明QGraphicsProxyWidget類對象,將要旋轉的窗口的指針作為參數(shù)加入scene中:

QGraphicsProxyWidget*w = scene->addWidget(form);

(3)設置將QGraphicsProxyWidget的對象翻轉90度:

w->setRotation(90);

(4)聲明QGraphicsView類對象:

QGraphicsView*view = new QGraphicsView(scene);

(5)用resize函數(shù)調整view的大?。?/p>

view->resize(1200,800);

(6)用show函數(shù)將view顯示出來:

view->show();

2.2 觸控校準實施方法

修改profile 文件,校準文件的存放位置,觸摸屏設備,指定幀緩沖設備,tslib 庫文件路徑[5]。

(1)在環(huán)境變量中增加QT_QPA_FB_TSLIB=1。

因為Qt5取消了QWS增加了QPA,所以要使用tslib模塊作為觸控輸入必須使用QT_QPA_FB_TSLIB=1開啟tslib模塊。

(2)在環(huán)境變量中增加 LD_PRELOAD=$TSLIB_ROOT/lib/libts.so,$TSLIB_ROOT。

TSLIB_ROOT是tslib所在絕對路徑。這樣就將tslib相應的庫添加進環(huán)境變量,然后更新環(huán)境變量。

3 試驗結果

3.1 屏幕翻轉實驗結果

如圖2,通過本文所使用的方法,Qt的窗口已經(jīng)實現(xiàn)順時針90度的旋轉。此時將設計好的Qt程序移植在ARM平臺則屏幕也已經(jīng)順時針旋轉90度。本文所使用方法只能旋轉加入QGraphicsScene類的窗口以及他們的子窗口。其他未加入QGraphicsScene類的窗口并不會旋轉。

圖2 屏幕旋轉結果

3.2 觸控校準實驗結果

沒有使用本文方法前,觸控命中率為 10%。通過本文所使用的方法校準之后觸控命中率達到99%。

4 結束語

本文針對當前Qt5在ARM設備上屏幕無法旋轉以及tslib觸控失靈的問題提出了相應的解決方法。通過本文所使用的方法解決了ARM設備屏幕無法旋轉的問題以及tslib在Qt5上觸控失靈的問題。

[1]王浩南, 劉益成.基于嵌入式Linux系統(tǒng)下的Qt開發(fā)[J].電腦開發(fā)與應用, 2010, 23(01): 11-13.

[2]吳燕燕, 賀鋒濤.基于ARM9平臺上Qt/Embedded的移植與開發(fā)[J].液晶與顯示, 2013, 28(02): 261-265.

[3]陸文周.Qt5開發(fā)及實例[M].北京: 電子工業(yè)出版社, 2015: 205.

[4]張敏, 張井崗.Linux平臺下支持觸摸屏的Qt/Embedded移植[J].計算機技術與展, 2011, 21(10): 154-156+160.

[5]舒明蕾, 華驚宇, 賴尚校.基于DM365平臺的Qt/Embedded移植[J].微型機與應用, 2015, 34(05): 19-21.

猜你喜歡
環(huán)境變量觸摸屏嵌入式
基于IMX6ULL的嵌入式根文件系統(tǒng)構建
2.5D觸摸屏蓋板玻璃翹曲控制技術
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
從桌面右鍵菜單調用環(huán)境變量選項
徹底弄懂Windows 10環(huán)境變量
基于ARM嵌入式的關于圖像處理的交通信號燈識別
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應用
皮膚“長”出觸摸屏
基于三階段DEA—Malmquist模型的中國省域城鎮(zhèn)化效率測度及其收斂分析
358:基于圖像識別的虛擬觸摸屏系統(tǒng)
江山市| 五家渠市| 盱眙县| 东莞市| 杭锦后旗| 上杭县| 衡水市| 凤翔县| 兰坪| 绵竹市| 伊宁市| 汽车| 宿州市| 垦利县| 武冈市| 冕宁县| 綦江县| 康马县| 那坡县| 垦利县| 汾西县| 侯马市| 喀什市| 恩平市| 常熟市| 台北县| 武宁县| 荃湾区| 湖南省| 伊春市| 和田县| 新蔡县| 仁布县| 扎鲁特旗| 嘉禾县| 延川县| 越西县| 武陟县| 辉南县| 元氏县| 凯里市|