基于廣州創(chuàng )龍TL437xF-EVM,使用最經(jīng)典的HelloWorld入門(mén)程序,帶領(lǐng)大家體驗一下Qt界面開(kāi)發(fā)流程,希望可以幫助到大家。廣州創(chuàng )龍TL437xF-EVM是基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA處理器,圖片如下:
![]() 下面進(jìn)入正題: 此例程源碼位于光盤(pán)"Demo\qt\helloworld\helloworld"目錄下。 可執行Qt程序鏡像在光盤(pán)的路徑為: "Demo\qt\helloworld\build-helloworld-AM437x-Debug\helloworld" 可直接將其拷貝到開(kāi)發(fā)板中運行。1. 新建工程 在菜單欄點(diǎn)擊"File->NewFileorProject",在彈出的對話(huà)框中選擇"Application ->Qt WidgetsApplication",再點(diǎn)擊Choose,如下圖所示: ![]() ![]() 在彈出的對話(huà)框的Name欄輸入工程名稱(chēng):helloworld,在"Create in"欄輸入或者通過(guò)Browse選擇工程存放目錄,例如:"/home/tronlong/AM437x/qt"。點(diǎn)擊Next,彈出如下界面: ![]() 點(diǎn)擊Next,彈出如下界面: ![]() 在彈出的界面中,點(diǎn)擊"Baseclass"選項下拉選擇QWidget。"Base class"下拉框中一共有QWidget、QMainWindow和QDialog三個(gè)選項。QWidget類(lèi)是所有用戶(hù)界面對象的基類(lèi),QMainWindow類(lèi)提供一個(gè)有菜單條、錨接窗口(例如工具條)和一個(gè)狀態(tài)條的主應用程序窗口,QDialog類(lèi)是對話(huà)框窗口的基類(lèi)。QMainWindow和QDialog都是繼承自QWidget。 點(diǎn)擊Next,彈出如下界面: ![]() 點(diǎn)擊Finish完成新建工程,彈出基本工程框架,如下圖所示: ![]() n 窗口大小設置 7寸屏的不能超過(guò)800*480,4.3寸屏不能超過(guò)480*272。請根據屏幕實(shí)際規格設置。雙擊"Forms->widget.ui"打開(kāi)圖形界面,如下圖所示: ![]() 在右下角的Property屬性窗口中,可以看到有g(shù)eometry選項,點(diǎn)開(kāi)前面 標志,可以看到有Width和Height的字段,雙擊輸入顯示尺寸,例如:Width:480,Height:272,如下圖所示: ![]() n 標題設置 在將屬性窗口的菜單條往下拖拉,在windowTitle字段,雙擊輸入想要的窗口標題,這里的窗口標題命名為"HelloWorld",如下圖: ![]() n 添加控件 添加Push Button(按鈕)控件:鼠標拖拽Buttons下的Push Button控件移動(dòng)到畫(huà)布中,松開(kāi)鼠標就放置了一個(gè)Push Button控件,用于點(diǎn)擊退出程序。其他的控件放置方法一樣。 ![]() 添加Label(文本標簽):鼠標拖拽Display Widgets下的Label控件移動(dòng)到畫(huà)布中,松開(kāi)鼠標就放置了一個(gè)Label控件,用于顯示"Hello World!"。 ![]() 演示如何編輯代碼,我們選用了最簡(jiǎn)單的示例代碼—Close。雙擊TextLabel,輸入“HelloWorld!”,雙擊PushButton,輸入”Close”。右擊界面上的Close按鈕,點(diǎn)擊"Go to slot…",如下圖所示: ![]() 在彈出的"Goto slot"對話(huà)框中選擇"clicked()",然后點(diǎn)擊OK確認,如下圖所示: ![]() 彈出代碼編輯框,在"voidWidget: ![]() ![]() 點(diǎn)擊所有未保存的代碼文件,按"Ctrl+S"就可以保存了。 4.在PC端運行HelloWorld Qt程序點(diǎn)擊左下角的編譯按鈕 ,在如下路徑會(huì )生成PC端的Qt程序鏡像helloworld: /home/tronlong/AM437x/qt/build-helloworld-Desktop_Qt_5_6_2_GCC_64bit-Debug ![]() ![]() 點(diǎn)擊左下角的運行按鈕 ,即可在PC端看到界面運行效果,如下圖所示: ![]() 點(diǎn)擊"Projects-> AM437x",等待運行圖標變?yōu)榫G色后,點(diǎn)擊 進(jìn)行ARM端的編譯,編譯后,ARM端Qt程序鏡像路徑為: /home/tronlong/AM437x/qt/build-helloworld-AM437x-Debug/helloworld 如下圖所示: ![]() ![]() 將交叉編譯產(chǎn)生的Qt程序鏡像拷貝到開(kāi)發(fā)板文件系統任意路徑。啟動(dòng)開(kāi)發(fā)板,在Qt程序鏡像所在目錄,執行如下命令運行Qt程序: Target# /etc/init.d/matrix-gui-2.0 stop //開(kāi)發(fā)板已經(jīng)設置上電自動(dòng)執行此程序,先終止 Target# ./helloworld -plugin Tslib ![]() “-plugin Tslib”指使用以插件形式運行Qt觸摸庫。 可以發(fā)現Qt界面為全屏,Qt界面尺寸設置沒(méi)有生效,原因是系統默認使用GPU基于OPENGL ES進(jìn)行圖層渲染,圖形效果更佳。如果期望Qt界面尺寸設置生效,并可以進(jìn)行界面縮放,而對圖層渲染效果要求不高,可以增加”-platform linuxfb”參數,運行命令如下: Target# /etc/init.d/matrix-gui-2.0 stop Target# ./helloworld -platform linuxfb -pluginTslib ![]() 更多參數說(shuō)明信息,請查看參考鏈接:http://doc.qt.io/qt-5/embedded-linux.html。 結束~ |