QT5的ARM移植及其中文顯示_第1頁
QT5的ARM移植及其中文顯示_第2頁
QT5的ARM移植及其中文顯示_第3頁
QT5的ARM移植及其中文顯示_第4頁
QT5的ARM移植及其中文顯示_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1.1 QT5的移植1.1.1 Qwt6的配置 Win7平臺的qwt插件安裝qwt源碼下載:因為官方的qt creator是用msvc編譯的,不能識別mingw編譯的qwt,所以需要將qt creator的源碼用mingw編譯一次。Qt creator(msvc2013版) + vs2013 + qwt的配置編譯qwt庫我用的qt5.4-msvc版本直接打開qwt的pro工程,編譯全部,生成lib和dll文件配置(1)將qwtd.dll、qwt.dll拷貝到H:QtQt5.4.05.4msvc2013_64_openglbin下,   將qwtd.

2、lib、qwt.lib拷貝H:QtQt5.4.05.4msvc2013_64_opengllib下(以qt安裝目錄H:QtQt5.4.05.4msvc2013_64_opengl為例)。 (2)將qwt_designer_plugin.dll和qwt_designer_plugin.lib拷貝到H:QtQt5.4.05.4msvc2013_64_openglpluginsdesigner目錄下。(3)將qwtsrc目錄下的所有.h和.cpp放入一個空文件夾QWT中,再將該文件夾拷貝到H:QtQt5.4.05.4msvc2013_64_openglinclude目錄下。使用  

3、;  新建項目,然后進行配置:(1)屬性->配置屬性->C/C+->常規,附加包含目錄:$(QTDIR)includeQWT(2)屬性->配置屬性->鏈接器->輸入,附加依賴項:qwtd.lib(3)屬性->配置屬性->C/C+->預處理器,預處理器定義:QWT_DLL Ubuntu平臺的qwt插件安裝GCC的qmake建立gcc版本的qmake軟鏈接將gcc-qmake放到/usr/bin下面就可以使用gcc-qmake了。為了和ARM版本的qmake區別!刪除鏈接那么我就可以在ubuntu下面編譯qwt

4、了。因為我用qt-creator打開后,builder后不知道在哪里生成了哪些東西。進入qwt-6.1.2目錄只好用qmake手動編譯了。#gcc-qmake #make#make install就會在/usr/local下面生成安裝qwt插件到ubuntu的qt-creatro中去一定要注意下面的這個路徑:Qt5.5.0/Tools/QtCreator折騰了半天,就是掉了這個路徑還有另外的一個路徑:下面的暫時不要這么做,因為不曉得在qt-creator如何應用頭文件,還是先直接引用/usr/local/qwt-6.1.2/lib + include 吧另外拷貝/usr/loca

5、l/qwt-6.1.2/lib下面的4個庫到相應的目錄新建1個Qwt的目錄,拷貝頭文件到里面Qwt的交叉編譯我的qt庫交叉版本沒有使能opengl選項,所以qmake, make出現錯誤!找不到opengl模塊配置qwt,重要的配置文件qwtconfig.pri修改qwtconfig.pri, 里面可以設置install的路徑,去除需要注釋如下的編譯選項,編譯arm qt時,沒有支持opengl。#QWT_CONFIG     += QwtOpenGL第二,需要注釋如下的編譯選項:#QWT_CONFIG     +

6、= QwtDesigner同時修改安裝路徑為:避免和gcc版本的混淆當然需要安裝到開發板上面,才能運行。 Qwt的使用INCLUDEPATH += /usr/local/qwt-6.1.2/includeLIBS += -L"/usr/local/qwt-6.1.2/lib/" lqwt看下面:在Qt Creator的tool菜單中選擇Form Editor-About Qt Designer plugins查看是否安裝了libqwt_designer_plugin.so1.1.2 Qt5.5的ubuntu12.04安裝#apt-get install lib

7、ssl.2.1 ibus安裝步驟第一步:安裝語言包進入 “System Settings”,找到 “Language Support” 那一項,點擊進入選擇 “Install/Remove Languages”, 找到 “Chinese (simplified)” 那一項,把后面到勾打上 然后點擊 “Apply Changes”等待一段時間即可第二步:安裝 Ibus 框架調出 terminal 終端,輸入命令: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4啟動 Ibus 框架,在終

8、端下輸入命令:im-switch -s ibusPS:安裝完 Ibus 框架之后,記得重啟或者注銷系統,要保證更改生效才行哦第三步:安裝拼音引擎有很多拼音引擎可供選擇,一般安裝一種就夠了,比如我就直接安裝的第一種Ibus 拼音:sudo apt-get install ibus-pinyinIbus 五筆:sudo apt-get install ibus-table-wubiGoogle 拼音:sudo apt-get install ibus-googlepinyinSun 拼音:sudo apt-get install ibus-sunpinyin第四步:設置 Ibus 框架在 

9、;terminal 中輸入命令:ibus-setup執行之后,會自動調出一個 Ibus Preference 設置框,選擇上面的 “Input Method” 選擇相應的中文輸入方式,然后點擊 “Add”注意:最好是安裝什么輸入法就 Add 什么輸入法這里還可以設置調出相應輸入法到快捷鍵,默認的是 “Ctrl+Space”好了,中文輸入法已經安裝完畢最后推薦一個非常好用到截圖工具:KSnapshot他能讓人非常隨意的截圖,還能設置延遲時間,用了才知道他到底有多方便安裝方法:調出 terminal 輸入:sudo apt-get install ksnapshot 并執行,等

10、待一段時間后便可 中文輸入法配置#locale a查看是否有:zh_CN.utf8/etc/profile環境變量的設置,注意是ibus系統的ibus設置位置需要支持utf-8中文環境沒有試過設置中文環境很簡單,需要三步。第一步,安裝中文包:sudo apt-get install language-pack-zh language-pack-zh-base第二步,配置相關環境變量:sudo vim /etc/environment在文件中增加語言和編碼的設置:LANG=”zh_CN.UTF-8LANGUAGE=”zh_CN:zh:en_US:en”第三步,重新設置本地配置:su

11、do dpkg-reconfigure locales UI界面不更新問題Ubuntu12的gnome主題安裝#apt-get install gnome-shell ,本用它解決qt-creator的ui不更新問題,結果沒有作用。解決linux下的ui界面不更新的方法:項目設置文件.pro內增加 UI_DIR=./UI,同時刪除掉源代碼目錄中ui_*.h,clear all,->qmake->rebuilt all總結:導致ui_*.h文件沒有更新的原因是源代碼中#include ui_*.h的位置和實際生成的位置不同,引用的是老的ui_*.h,設置UI_DIR后就

12、規定了位置于是不會出錯了。確實如此:操作一次后,以后就立即生效了。新建工程的時候,會生成一個單獨的build-test*目錄是沒有UI目錄的,通過修改.pro,指定UI的頭文件路徑,它以后就老老實實的呆在那里了!而之前的錯誤是:Build-xxx目錄下面有ui_xxx.h文件,test_my源目錄下面也有ui_xxx.h文件。導致修改ui后的ui_xxx.h文件無法引用到工程中!所以一直導致ui不變化!源碼目錄:Build-xxx目錄:2者不同步!通過強行制定UI_DIR來解決!1.1.3 Qt5.5的交叉編譯 ARM平臺交叉編譯Qt的版本:qt5.5, 交叉工具鏈版本:總結:

13、解壓源碼,配置交叉工具鏈編譯的東西在qtbase目錄下,在mkspecs下面復制linux-arm-gnueabi-g+全部為Linux-arm-qt5-notslib 修改qmake.conf-mthumb -march=armv7-aQt5的配置和Qt4的有太多的不一樣。配置選項這里 ./qt55-notslib 換成絕對路徑,不然它會在當前目錄下生成qt55-notslib目錄或者改成 ./_install目錄注意:./configure命令運行完成后,它會提示“make”,”make install”命令,但是在它之前會打印很多Error,說什么找不到頭文件,找不到sql等等。不管他,

14、那些頭文件,解壓源碼后根本沒有!在這里浪費了很多的時間。 編譯makemake install 就會在-prefix指定的目錄下生成 虛擬機上設置qmake arm的環境這樣就可以交叉編譯qt工程了。拷貝qt-arm庫到開發板的rootfs文件系統,主要是這3個文件設置開發板的qt環境變量將它寫成腳本, # . ./qt-board.sh 在開機啟動的時候加入,就可以了!注意鼠標,鍵盤的變量和對應的設備節點內核默認是打開HID設備驅動的,如果找不到輸入設備,看內核是否打開usb的HID支持!如何確定設備節點?插入無線鼠標、鍵盤到usb口,console檢測到后,會打印信息出來。這個時候就可以看

15、到。確定是哪個?一般會出現2個,有1個是正確的。#cat /dev/input/event1 移動鼠標/按下鍵盤,有反應,打印亂碼的就是它了!和Qt4不同的是,Qt5對鍵盤的設置是環境變量指定就行了,而Qt4還要在./configure中加入鍵盤,鼠標的選項來支持!問題又來了:默認Qt5的顯示是看不到鼠標的?暫時打開:嵌入式linux的相關設置http:/doc.qt.io/qt-5/embedded-linux.html#configuring-for-a-specific-deviceQT_QPA_PLATFORM=linuxfb:fb=/dev/fb1 specifies th

16、at the framebuffer device /dev/fb1 size=<width>x<height> - Parameters like the device node name can be set in the environment variablesQT_QPA_EVDEV_MOUSE_PARAMETERS, QT_QPA_EVDEV_KEYBOARD_PARAMETERS andQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS. Additionally,

17、the built-in input handlers can be disabled by setting QT_QPA_EGLFS_DISABLE_INPUT or QT_QPA_FB_DISABLE_INPUT to 1屏幕旋轉On some touch screens the coordinates will need to be rotated. This can be enabled by settingQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to rotate=180.QT_QP

18、A_FB_HIDECURSOR (for linuxfb)  關閉鼠標export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=180"export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0,size=480x272  x86平臺的交叉編譯#輸入qvfb,提示要安裝包#apt-get insall 就可以了。 qt的中文輸入法 字體轉換工具Qt5.5的源碼就包含這個工具Qt comes with the cross-platfor

19、m makeqpf tool, included in the tools directory, which allows generation of QPF2 files from system fonts.在Linux中分別安裝應用于不同平臺的Qt:PC;嵌入式X86;ARM。這三者PC版、嵌入式X86版和ARM版的區別主要體現在:當configure時分別加了不同的參數,具體區別是:PC平臺(X11平臺):在linux中全安裝qt,用它編譯好程序后,直接用“./”就可運行。嵌入式X86平臺:帶有qvfb功能,在PC機上可以模擬應用程序在arm開發板

20、上的運行情況。用此編譯好的程序,只用“./”命令不可以運行,必須加上參數 -qvfb qwsPs:嵌入式X86平臺,這個是PC下的一個qtopia,他自帶有個模擬器,可以模擬出arm開發板的樣子出來。方便調試;ARM平臺:編譯好的程序,用于在arm平臺上運行。Ps:ARM平臺,這個主要是用來編譯,因為要下載到開發板上,需要arm版的qte的庫文件,編譯后直接下載到開發板運行;Ps:編譯x86是為了得到makeqpf,編譯pc是為了得到qvfb我是如何編譯makeqpf的Qvfb好編譯,直接在#輸入qvfb,提示缺失什么,就#apt-get install就行了。問題是怎么編譯embedded

21、x86版本的? 它對應的編譯器是什么?網上找不到,都是qt4的。沒有辦法,試試。解壓qt5.5-everywhere-xxx的源碼,改為qt-5.5-src-x86, qt5-x86為編譯后的安裝目錄配置qt5.5注意:一點要有-qt-xcb插件,不然makeqpf無法運行的。我編譯了2個小時,沒有xcb插件!怎么搞?從來?單獨的編譯xcb插件,如果忘記了配置,直接進入它的目錄,#make , #make install就行了。這里就是xcb插件的目錄,在它下面qmake,make,make install這里的gcc-qmake就是我再ubuntu下面安裝的qt5.5-creator后的qm

22、ake,gcc-qmake是他的軟連接設置好/etc/profile的qt-x86的LD庫和插件的路徑把所有用到的漢字寫到一個文本文件里,在makeqpf(Qt4)里選擇這個文件,生成的字體文件就很小。準備要轉換的字體文件,可在C:WINDOWSFonts下找,或者去下載。這里我們是下載的wqy-zenhei.ttf。將wqy-zenhei.ttf字體文件拷貝到/usr/local/Trolltech/qt-4.7.0-x86/lib/fonts中,這樣是為了在makeqpf中找到它旋轉字體庫的制作使用帶參數的方式執行makeqpf,如./makeqpf -display 

23、Transformed:Rot90  以上指令用于制作翻轉90度的字庫文件,制作其它的字庫文件只需將270改為90,180,0等注:在$(QTDIR)/lib/fonts/ 目錄下的qpf字體文件中,文件名中帶有t5,t10,t15等后綴的為旋轉字體庫,t5為旋轉90度,t10為旋轉180度,t15為旋轉270度。如wenquanyi_160_50_t5.qpf  Qt的中文ARM顯示Qt normally uses fontconfig to provide access to system fonts. If fon

24、tconfig is not available, e.g. in dedicated embedded systems where space is at a premium, Qt will fall back to using QBasicFontDatabase. In this case, Qt applications will look for fonts in Qt's lib/fonts/ directory. Qt will automatically detect prerendered fonts and TrueType font

25、s.Qt的配置相關: -no-fontconfig . Do not compile FontConfig support.+ -fontconfig . Compile FontConfig support.嵌入式里面如果沒有配置fontconfig,那么它就會在lib/fonts目錄下面找字體,默認不配置。已經摸索出解決方案【驗證不成功,返回-1】#include <QFontDatabase>int main(int argc, char *argv)    QApplication a(argc, argv);    int nIndex = QFontDatabase:addApplicationFont("./Resources/msyh.ttf");/這里我加載返回 -1,加載qpf2的字體不成功if (nIndex 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論