国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

碼農愛學習 ? 來源:碼農愛學習 ? 作者:碼農愛學習 ? 2022-06-02 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上篇文章介紹了如何搭建在Linux開發板中搭建Qt的運行環境,并測試了Qt自帶的例程。

本篇,來介紹如何自己編寫一個Qt程序,并將編譯結果放到Linux開發板中運行。

1 Windows上編寫Qt程序

因為Qt是支持跨平臺的,所以我們可以先在Windows平臺上編寫和查看Qt的運行效果,然后再通過交叉編譯,編譯出ARM Linux平臺的可執行文件,最終放到開發板中查看運行結果。

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

下面介紹如何創建一個Qt工程。

1.1 新建Qt工程

Qt Creator本質也是一個集成開發環境,與Visual Studio之類的創建工程的流程類似,其軟件界面如下:

poYBAGKXfviACv21AAEijaCVbAg618.png

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

pYYBAGKXfv6ACFgOAABV9vt-L84049.png

出現選擇項目工程的存放位置,然后再下一步:

poYBAGKXfwaAejQwAAAkwzfLE7s296.png

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

pYYBAGKXfwyAXFQ0AAAkcLkzY5E226.png

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

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

poYBAGKXfxOALLBTAAA02acWN-A919.png

到這里,Qt工程就創建好了,點完成:

poYBAGKXfxiARD60AAAmzaE7fls127.png

創建的Qt工程如下,主要包含4個文件:

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

main.cpp:主程序

widget.cpp:窗口程序

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

pYYBAGKXfx2AA02ZAAD1xORuFww084.png

1.2 代碼編寫(時鐘程序)

Widget的構造函數

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(update()));
    timer->start(1000);

    setWindowTitle(tr("Clock"));
    setMinimumSize(200, 200); //設置最小尺寸
}

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

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

connect(timer, SIGNAL(timeout()), this, SLOT(update()));

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

界面設計

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

void Widget::paintEvent(QPaintEvent *event)
{
    int side = qMin(width(), height());
    QTime time = QTime::currentTime();

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.translate(width()/2, height()/2); //畫圖的基準位置
    painter.scale(side/200.0, side/200.0); //隨窗口尺寸自動縮放

    //表盤
    for (int i=0; i;>

第2句:

QTime time = QTime::currentTime();

是來獲取系統的當前時間。

1.3 編譯運行

現在Windows平臺中編譯運行,查看效果:

pYYBAGKXfyaAWkg1AAHFzNAdmQs888.png

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

pYYBAGKXfyuACZ49AABJoS-M_wo902.png

2 Ubuntu中交叉編譯Qt

Windows中測試通過后,就需要編譯出能夠在ARM平臺運行的可執行程序了,這里需要在Ubuntu中進行編譯。

2.1 復制源文件到Ubuntu中

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

poYBAGKXfzGAbDjRAABQvuWe9qk049.png

復制到Ubuntu中的合適位置:

pYYBAGKXfziAX0eTAAAzxIo-gRY421.png

2.2 交叉編譯

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

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

首先的使用qmake生成Makefile,進入程序源碼目錄,執行qmake指令:

/home/xxpcb/myTest/imx6ull/otherlib/qt/qt-everywhere-src-5.12.9/arm-qt/bin/qmake

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

pYYBAGKXfz-AHhnJAACvLQXs1SM877.png

然后執行make指令進行編譯:

make
poYBAGKXf0aAUiwlAAHXhcKuUfU908.png

編譯完可以看到可執行文件clock。

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

file clock
poYBAGKXf02AalYqAAHj4jcziv8433.png

可以看到該可執行文件是ARM平臺的。

3 Linux開發板中運行Qt程序

3.1 復制可執行文件到開發板中

此次測試,仍然使用的是網絡位置掛載根文件系統的方式,通過如下指令將可執行文件復制到根文件系統中(開發板中):

sudo cp clock ~/myTest/nfs/rootfs/myProj/qt/mytest/
pYYBAGKXf1WALW_FAAHLQaP6e1U234.png

3.2 查看開發板中的運行效果

然后就可以在開發板中執行該程序,查看效果了:

./clock

運行效果如下:

pYYBAGKXf1uAOfwrAAJK_7y7SJc130.png

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

4 總結

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    135

    文章

    9552

    瀏覽量

    391856
  • 嵌入式
    +關注

    關注

    5198

    文章

    20442

    瀏覽量

    333990
  • Linux
    +關注

    關注

    88

    文章

    11758

    瀏覽量

    219009
  • 開發板
    +關注

    關注

    26

    文章

    6289

    瀏覽量

    118058
  • Qt
    Qt
    +關注

    關注

    2

    文章

    320

    瀏覽量

    40868
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    arm嵌入式主板優缺點

    和智能終端設備對主板的要求。而且基于ARM架構的嵌入式主板的硬件開發周期一般在3月內,大大降低了研發的成本和加快了客戶產品研發的速度。   ARM的缺點   
    發表于 01-08 07:08

    ARM嵌入式這樣學

    )話題大熱,Arm也推出神經網絡機器學習軟件 Arm NN,可在基于Arm的高能效平臺上輕松構建和運行機器學習應用程序,未來
    發表于 12-04 07:48

    tiny4412 Qt環境搭建

    1.硬件環境 PC端:ubuntu18.04 開發板硬件平臺:tiny4412 內核版本:linux3.5 交叉編譯器:arm-linux-gcc Qt版本:Qt5.6 2.搭建 ub
    的頭像 發表于 10-21 09:54 ?642次閱讀
    tiny4412 <b class='flag-5'>Qt</b>環境搭建

    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—Qt工程編譯、GPU核心使用說明

    及 Kits 配置;還介紹評估板運行 Qt 程序程序自啟動設置,以及通過 textures 案例演示 Qt+OpenGL 調用 GPU
    的頭像 發表于 09-29 14:16 ?719次閱讀
    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—<b class='flag-5'>Qt</b>工程編譯、GPU核心使用說明

    LVGL近期很多人問,那它和Qt哪個好?

    最近拜訪做工業控制、智能家居的客戶時,常被問到同一問題:嵌入式產品,GUI選LVGL還是Qt? 其實工具選擇沒有絕對的“好”與“壞”,但選對適配場景的GUI圖形用戶界面工具,能直接讓產品開發效率
    的頭像 發表于 09-23 15:54 ?1453次閱讀
    LVGL近期很多人問,那它和<b class='flag-5'>Qt</b>哪個好?

    【飛凌T527N開發板試用】QT應用開發

    qt介紹 Qt 是一跨平臺的C++ 應用程序開發框架 ,由挪威公司 Trolltech(現為 The Qt Company)開發。
    發表于 08-19 15:04

    嵌入式工程師為什么要學QT?

    、Clang、MSVC等,并提供了跨平臺的編譯和發布流程。 強大的集成開發環境(IDE) Qt Creator提供了代碼編輯、調試、構建和發布功能,極大地提升了開發效率。 因此,Qt嵌入式工程師值得學習的一
    發表于 08-14 15:15

    【米爾RK3506國產開發板評測試用】1、硬件介紹、SDK開發環境和QT開發環境搭建

    。 修改QT的Projects界面中的Command line Argments為--platform liunxfb,指定QT使用的顯示后端類型。 編譯運行工程,部署執行
    發表于 08-02 15:02

    國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Qt工程編譯說明

    本文檔主要說明如何將已有Qt工程進行編譯,生成可在評估板上正常運行ARMQt程序鏡像。
    的頭像 發表于 07-28 10:10 ?679次閱讀
    國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—<b class='flag-5'>Qt</b>工程編譯說明

    【米爾RK3576開發板免費體驗】1、開發環境、鏡像燒錄、QT開發環境搭建以及應用部署

    微處理器推出的嵌入式模組,具備超高性 能、豐富的拓展接口和邊緣算力,適用于邊緣計算設備、商用機器人、AI 商顯、智能車載終 端、智慧電力等。 開發板的硬件連接如下 1、Linux_SDK構建和工具鏈
    發表于 07-14 11:26

    高效開發 | 瑞迅基于瑞芯微系列主板QT移植部署(上)

    嵌入式開發的浪潮中,RK3568平臺以其強勁性能成為諸多領域的寵兒,而QT憑借出色的跨平臺特性和豐富功能,是界面開發的利器。將QT5移植到RK3568平臺的深度融合,是嵌入式硬件標準
    的頭像 發表于 07-11 15:39 ?1087次閱讀
    高效開發 | 瑞迅基于瑞芯微系列主板<b class='flag-5'>QT</b>移植部署(上)

    嵌入式軟件開發常用的軟件有哪些?

    軟件功能。 2. Visual Studio 簡稱VS: 它是一IDE,集成開發環境。驗證C程序或是進行c#程序開發,可以用它。一些與嵌入式相關的模擬器也是基于VS的。幫助開發人
    發表于 07-03 17:06

    全志T536 4核A55 ARM+RISC-V+NPU 17路UART 工業開發板—Qt工程編譯說明

    本文主要說明如何將已有Qt工程進行編譯,生成可在評估板上正常運行ARMQt程序鏡像。
    的頭像 發表于 06-09 16:56 ?1592次閱讀
    全志T536 4核A55 <b class='flag-5'>ARM</b>+RISC-V+NPU 17路UART 工業開發板—<b class='flag-5'>Qt</b>工程編譯說明

    基于RK3576開發板的QT GUI例程

    EASYEAI Orin-Nano開發板搭載了帶有xfce桌面環境的Debian系統,支持Qt應用程序的開發和運行。開發板采用RK3576 CPU,性能強大,可直接在板上編譯Qt應用
    的頭像 發表于 05-14 10:26 ?1489次閱讀
    基于RK3576開發板的<b class='flag-5'>QT</b> GUI例程

    【技術案例】Qt 環境部署 - Ubuntu 篇

    什么是QtQt是一跨平臺C++圖形用戶界面應用程序開發框架,可構建高性能的桌面、移動及Web應用程序,也可用于開發非GUI
    的頭像 發表于 04-16 17:17 ?1927次閱讀
    【技術案例】<b class='flag-5'>Qt</b> 環境部署 - Ubuntu 篇