《嵌入式Linux開發(fā)實踐教程 第2版》 課件 項目9 嵌入式GUI應(yīng)用開發(fā)與移植_第1頁
《嵌入式Linux開發(fā)實踐教程 第2版》 課件 項目9 嵌入式GUI應(yīng)用開發(fā)與移植_第2頁
《嵌入式Linux開發(fā)實踐教程 第2版》 課件 項目9 嵌入式GUI應(yīng)用開發(fā)與移植_第3頁
《嵌入式Linux開發(fā)實踐教程 第2版》 課件 項目9 嵌入式GUI應(yīng)用開發(fā)與移植_第4頁
《嵌入式Linux開發(fā)實踐教程 第2版》 課件 項目9 嵌入式GUI應(yīng)用開發(fā)與移植_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

3Qt簡介物聯(lián)網(wǎng)學(xué)院平震宇3Qt介紹

Qt是一個跨平臺應(yīng)用程序和UI開發(fā)框架只需一次性開發(fā)應(yīng)用程序,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序Qt完全的面向?qū)ο?、易于擴(kuò)展,并允許組件編程

”Qtisacrossplatformdevelopment

frameworkwritteninC++.”3Qt歷史19901991199420052008Haavard和Eirik靈感閃現(xiàn)開始設(shè)計,并提出信號和槽的概念1993開發(fā)出Qt的第一個圖形核心命名為Qt,并建立“奇趣科技”1995簽訂第一個合同,開始快速發(fā)展。1997Qt1.2發(fā)布,并且用于開發(fā)KDE。Qt4.0發(fā)布Nokia收購奇趣科技2012Digia收購Qt2014Qt5.3正式版3QtCreator介紹

QtCreator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。QtCreator可帶來兩大關(guān)鍵益處:提供首個專為支持跨平臺開發(fā)而設(shè)計的集成開發(fā)環(huán)境(IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。即使不開發(fā)Qt應(yīng)用程序,QtCreator也是一個簡單易用且功能強(qiáng)大的IDE復(fù)雜代碼編輯器版本控制集成用戶界面設(shè)計器項目和編譯管理桌面和移動平臺3QtCreator界面3Qt基礎(chǔ)模塊3Qt/EmbeddedQt/Embedded是一個完整的包含GUI和基于Linux嵌入式平臺的開發(fā)工具。Qt/Embedded以Qt為基礎(chǔ),并做了許多調(diào)整以適用于嵌入式環(huán)境。嵌入式GUI要求簡單、直觀、可靠、占用資源小且反應(yīng)快速,以適應(yīng)系統(tǒng)硬件資源有限的條件。3Qt開發(fā)環(huán)境物聯(lián)網(wǎng)學(xué)院平震宇3QtopiaQtopia最初是sourceforge.NET上的一個開源項目,全稱是QtPalmtopEnvironment,是構(gòu)建于Qt/Embedded之上一個類似桌面系統(tǒng)的應(yīng)用環(huán)境Qtopia是為采用嵌入式Linux操作系統(tǒng)的消費(fèi)電子設(shè)備而開發(fā)的綜合應(yīng)用平臺,Qtopia包含完整的應(yīng)用層、靈活的用戶界面、窗口操作系統(tǒng)、應(yīng)用程序啟動程序以及開發(fā)框架。

交叉編譯Qt交叉編譯工具:arm-linux-gcc-4.3.2Qt源碼:qt-everywhere-opensource-src-4.7.0tslib源碼:tslib-1.4.tar.gz交叉編譯Qthttp://download.qt.io/archive/qt/3任務(wù)要求StepOne交叉編譯Qt4.7StepTwo在mini2440上部置Qt4.7StepThree運(yùn)行Qt4.7的示例程序StepOne配置tslib#./autogen.sh#./configure--prefix=/usr/local/tslib/--host=arm-linux編譯并安裝Qt4.7#make&&makeinstall下載tslib1.4#gitclone/kergoth/tslib#apt-getinstallautoconfautomake

libtoolStepOne執(zhí)行

Qt4.7.0編譯前的配置#/opt/mini2440/qt-everywhere-opensource-src-4.7.0#

./configure-prefix/opt/Qt4.7-opensource-release-fast-embeddedarm-xplatformqws/linux-arm-g++-no-webkit-qt-libtiff-qt-libmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon編譯并安裝Qt4.7#make&&makeinstallStepTwo將Qt4.7打包將qt4.7.tgz拷貝到mini2440開發(fā)板#cd/opt#tarcvzfqt4.7.tgzQt4.7#rm/usr/local/Trolltech/QtEmbedded-4.7.0-arm/-rf#cd/opt#tarxvzf/sdcard/qt4.7.tgzStepThree腳本

/bin/setqt4env#!/bin/shif[-e/etc/friendlyarm-ts-input.conf];then./etc/friendlyarm-ts-input.conffitrue${TSLIB_TSDEVICE:=/dev/touchscreen}TSLIB_CONFFILE=/etc/ts.confexportTSLIB_TSDEVICEexportTSLIB_CONFFILEexportTSLIB_PLUGINDIR=/usr/lib/tsexportTSLIB_CALIBFILE=/etc/pointercalexportQWS_DISPLAY=:1exportLD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATHexportPATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/binif[-c/dev/touchscreen];thenexportQWS_MOUSE_PROTO="TslibMouseMan:/dev/input/mice"if[!-s/etc/pointercal];thenrm/etc/pointercal/usr/bin/ts_calibratefielseexportQWS_MOUSE_PROTO="MouseMan:/dev/input/mice"fiexportQWS_KEYBOARD=TTY:/dev/tty1exportHOME=/root3配置QtCreator物聯(lián)網(wǎng)學(xué)院平震宇3qmakeqmake是Trolltech公司創(chuàng)建的用來為不同的平臺和編譯器生成Makefile的工具。手寫Makefile是比較困難并且容易出錯的,尤其是需要給不同的平臺和編譯器組合寫幾個Makefile。使用qmake,開發(fā)者創(chuàng)建一個簡單的“項目”文件并且運(yùn)行qmake生成適當(dāng)?shù)腗akefile。qmake會注意所有的編譯器和平臺的依賴性,可以把開發(fā)者解放出來只關(guān)心他們的代碼。Trolltech公司使用qmake作為Qt庫和Qt所提供的工具的主要連編工具。qmake也注意了Qt的特殊需求,可以自動的包含moc和uic的連編規(guī)則。

3任務(wù)要求StepOne使用qmake工具StepTwo配置QtCreatorStepOne創(chuàng)建一個項目文件

SOURCES=hello.cppHEADERS=hello.hCONFIG+=qtwarn_onrelease生成Makefile#qmake-oMakefileStepTwoqmake配置界面

StepTwo工具鏈配置界面

StepTwoARM平臺構(gòu)建設(shè)置

3信號-槽物聯(lián)網(wǎng)學(xué)院平震宇3信號-槽(Signals&Slots)quit:QPushButtonclick()[signal]a:QApplicationquit()[slot]QObject::connect(&quit,SIGNAL(clicked()),&a,SLOT(quit()));鼠標(biāo)點(diǎn)擊quit按鈕quit對象發(fā)出信號click()執(zhí)行對象a的quit()函數(shù)信號-槽(Signals&Slots)class類名:publicQObject或其派生類{Q_OBJECT......signals:

信號名(信號參數(shù)列表);......};含有信號與槽的類必須繼承自QObject類或其派生類類定義開始處需要有Q_OBJECT宏在signals部分聲明信號信號的聲明與函數(shù)聲明相同,但是沒有函數(shù)定義emit

信號名(信號參數(shù)表);Qt類中預(yù)定義了大部分常用的信號與槽,同時用戶可以自定義信號與槽信號-槽(Signals&Slots)class類名:publicQObject或其派生類{Q_OBJECT......

訪問權(quán)限slots:

槽函數(shù)名(參數(shù)列表);......};含有信號與槽的類必須繼承自QObject類或其派生類類定義開始處需要有Q_OBJECT宏在slots部分聲明槽訪問權(quán)限publicprivateprotected槽與普通C++函數(shù)幾乎完全一樣,唯一不同的是它可以和信號連接返回類型類名::槽函數(shù)頭{

槽函數(shù)定義}槽的聲明與定義信號-槽(Signals&Slots)sender:指向發(fā)出信號的對象的指針receiver:指向結(jié)束信號的對象的指針一個信號可以連接多個槽,發(fā)射信號時會以不確定的順序自動調(diào)用這些槽多個信號可以連接同一個槽一個信號可以與另外一個信號連接連

溫馨提示

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

最新文檔

評論

0/150

提交評論