最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

嵌入式Qt-動手編寫并運(yùn)行自己的第1個ARM-Qt程序

2022-03-05 18:35 作者:碼農(nóng)愛學(xué)習(xí)-B站  | 我要投稿

上篇文章介紹了如何搭建在Linux開發(fā)板中搭建Qt的運(yùn)行環(huán)境,并測試了Qt自帶的例程。

本篇,來介紹如何自己編寫一個Qt程序,并將編譯結(jié)果放到Linux開發(fā)板中運(yùn)行。

1 Windows上編寫Qt程序

因?yàn)镼t是支持跨平臺的,所以我們可以先在Windows平臺上編寫和查看Qt的運(yùn)行效果,然后再通過交叉編譯,編譯出ARM Linux平臺的可執(zhí)行文件,最終放到開發(fā)板中查看運(yùn)行結(jié)果。

Windows上需要安裝Qt Creator軟件來開發(fā)Qt程序,該軟件的安裝過程,和大多數(shù)軟件的安裝過程都差不多,在此不再演示安裝過程。

下面介紹如何創(chuàng)建一個Qt工程。

1.1 新建Qt工程

Qt Creator本質(zhì)也是一個集成開發(fā)環(huán)境,與Visual Studio之類的創(chuàng)建工程的流程類似,其軟件界面如下:

創(chuàng)建工程,選擇左上角菜單中的“文件”->"新建文件或項(xiàng)目",彈出如下窗口,然后默認(rèn)選擇Qt Widgets Application,然后右下加點(diǎn)擊“Choose"按鍵:

出現(xiàn)選擇項(xiàng)目工程的存放位置,然后再下一步:

這里會用到Visual Studio中的一些功能,默認(rèn)即可,然后下一步:

然后要選擇類信息,基類里可選的有QMainWindow、QWidget和QDialog,這里我們選擇QWidget。

下面還有一個”創(chuàng)建界面“的勾選框,那個是用來通過圖形化的方式設(shè)計顯示界面,本篇暫用不到,先取消勾選,然后點(diǎn)下一步

到這里,Qt工程就創(chuàng)建好了,點(diǎn)完成:

創(chuàng)建的Qt工程如下,主要包含4個文件:

  • clock.pro:Qt工程的配置文件

  • main.cpp:主程序

  • widget.cpp:窗口程序

  • widget.h:窗口程序的頭文件

1.2 代碼編寫(時鐘程序)

Widget的構(gòu)造函數(shù)

首先創(chuàng)建了一個Qt的定時器,設(shè)置超時時間為1s(1000ms),超時時間到,更新表盤的顯示。

第2行是Qt中最常用的信號和槽機(jī)制:

信號和槽,簡單的立即,就是信號SIGNAL出現(xiàn)后(1s定時器超時),觸發(fā)槽SLOT函數(shù)執(zhí)行(更新表盤的顯示)

界面設(shè)計

時鐘程序中的表盤,表針等,都是通過畫圖的方式實(shí)現(xiàn)的,具體的代碼如下:

第2句:

是來獲取系統(tǒng)的當(dāng)前時間。

1.3 編譯運(yùn)行

現(xiàn)在Windows平臺中編譯運(yùn)行,查看效果:

該時鐘是可以根據(jù)窗口大小的變化,自動進(jìn)行放到或縮小顯示的:

2 Ubuntu中交叉編譯Qt

Windows中測試通過后,就需要編譯出能夠在ARM平臺運(yùn)行的可執(zhí)行程序了,這里需要在Ubuntu中進(jìn)行編譯。

2.1 復(fù)制源文件到Ubuntu中

將Windows中的QT工程源碼,復(fù)制到Ubuntu中,注意.user文件是不需要的,這個是Windows平臺的編譯配置。

復(fù)制到Ubuntu中的合適位置:

2.2 交叉編譯

編譯ARM平臺的Qt程序,需要使用ARM平臺的編譯工具鏈。

上篇文章,在搭建Qt環(huán)境,編譯Qt源碼時,已經(jīng)生成了ARM平臺的Qt編譯工具鏈,其位置是在上篇文章介紹的make install那一步的安裝位置,我的是在”/home/xxpcb/myTest/imx6ull/otherlib/qt/qt-everywhere-src-5.12.9/arm-qt/“,這里需要先用到它的qmake工具先自動生成Makefile文件,再通過make指令進(jìn)行編譯。

首先的使用qmake生成Makefile,進(jìn)入程序源碼目錄,執(zhí)行qmake指令:

成功執(zhí)行之后,就可以看到自動生成的Makefile文件:

然后執(zhí)行make指令進(jìn)行編譯:

編譯完可以看到可執(zhí)行文件clock。

我們可以再使用file命令查看該可執(zhí)行文件的平臺信息:

可以看到該可執(zhí)行文件是ARM平臺的。

3 Linux開發(fā)板中運(yùn)行Qt程序

3.1 復(fù)制可執(zhí)行文件到開發(fā)板中

此次測試,仍然使用的是網(wǎng)絡(luò)位置掛載根文件系統(tǒng)的方式,通過如下指令將可執(zhí)行文件復(fù)制到根文件系統(tǒng)中(開發(fā)板中):

3.2 查看開發(fā)板中的運(yùn)行效果

然后就可以在開發(fā)板中執(zhí)行該程序,查看效果了:

運(yùn)行效果如下:

由于板子的網(wǎng)絡(luò)時間還不能正確獲取,這里顯示的時間其實(shí)是不對的,不過表針仍然會1秒1秒的走動。

4 總結(jié)

本篇詳細(xì)介紹了如何自己編寫一個Qt程序,如何通過交叉編譯,最終放到開發(fā)板中執(zhí)行的過程。




嵌入式Qt-動手編寫并運(yùn)行自己的第1個ARM-Qt程序的評論 (共 條)

分享到微博請遵守國家法律
保亭| 台前县| 台湾省| 修文县| 武安市| 永嘉县| 合山市| 来宾市| 三门峡市| 嵩明县| 隆尧县| 哈密市| 大厂| 马公市| 陆川县| 盐源县| 抚顺市| 衡水市| 呼图壁县| 榆林市| 石台县| 波密县| 五大连池市| 合川市| 上高县| 大理市| 清河县| 庆元县| 大邑县| 历史| 孝义市| 延寿县| 普陀区| 潮州市| 额尔古纳市| 依安县| 衡南县| 嘉黎县| 当阳市| 昌都县| 保山市|