那曲檬骨新材料有限公司

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

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

3天內不再提示

Qt新工程創建向導暗藏玄機

嵌入式小生 ? 來源:嵌入式小生 ? 2023-01-30 09:55 ? 次閱讀

一、導讀

在使用Qt進行項目開發過程中,QtCreator是一款流行多年的必備開發利器,本文基于QtCreator這款IDE,描述其『新文件和新工程』創建向導中各選項的含義,還簡要分析使用QtCreator內部自帶模板創建出基礎工程。

本文內容基于QtCreator版本:8.0.1:

836f04d4-964a-11ed-bfe3-dac502259ad0.png

對于一個全新的Qt項目,在項目開發實施之前需要考慮項目的開發方式,其中就包含了編程語言的選擇,Qt主要提供了三種方式去開發自己的項目:

(1)C++開發方式

(2)QtQuick qml開發方式

(3)python開發方式

上述三種方式從計算機編程語言去考量。忽略Qt-android平臺下的開發。

二、淺談開發方式

(2-1)C++開發方式

如果項目選擇了C++作為開發中所使用的編程語言,在使用QtCreator創建項目時,則選擇『Application(Qt)->Qt Widgets Application/Qt Console Application』:

83d4cecc-964a-11ed-bfe3-dac502259ad0.png

Qt Widgets Application :如果選擇了該選項,則創建一個包含主窗口且基于Widget的Qt應用程序。也就是說,如果是一個需要包含窗體且使用C++作為開發方式的項目,就選擇該選項。

Qt Console Application :如果選擇了該選擇,則創建一個控制臺運行的Qt應用程序,也就是不帶任何界面的Qt項目。

Widgets Application和Console Application從源碼上分別以QApplication和QCoreApplication類表示。

(2-2)QtQuick qml開發方式

QtQuick是Qt提供的一種炫酷界面快速開發的方式,qml是主要的開發語言,如果項目想以QtQuick進行開發,則選擇『Application(Qt)->Qt Quick Application』:83ee3cea-964a-11ed-bfe3-dac502259ad0.png

以這個選項按照工程向導創建的項目,會自動生成一個main.cpp文件和一個main.qml文件。

在main.cpp文件中創建了QGuiApplication對象和QQmlApplicationEngine引擎,并指定了引擎需要解析的qml文件,這里是main.qml。在main.qml文件中,則描述了一個極簡單的窗體。

(2-3)python開發方式

如果項目選擇了python作為開發中所使用得編程語言,在使用QtCreator創建項目時,則選擇『Application(Qt for Python)』:

84163f24-964a-11ed-bfe3-dac502259ad0.png

Empty Application:該選項創建一個空的項目工程,使用python方式創建了QApplication。QtCerator內部模板生成的代碼中不包含窗體描述部分。

Empty Windows :該選項會創建一個空的窗體應用程序,包含了一個窗體。

Window UI - Dynamic load :該選項創建一個帶xxx.ui文件的工程,可以使用Qt Designer設計。(這種方式是以動態方式加載xxx.ui文件,源碼上使用QUiLoader()實現)

Window UI :該選項與Window UI - Dynamic load功能類似,都會創建一個xxx.ui文件。與widget + C++開發中的ui文件一樣,會將xxx.ui文件轉換生成對應的界面類,只是這里是基于python語言的。

Qt Quick Application - Empty :該選項用于創建使用QtQuick qml + python開發的項目工程,QtCreator內部項目模塊會創建一個工程描述文件xxx.pyproject、應用解析文件main.py和`應用描述文件main.qml。

三、新工程創建向導下的Library

在上述第二小節描述了使用QtCreator創建基于Qt新項目的三種開發方式,本小節描述『新工程創建向導』下的Library選項。

如果想創建一個生成庫的工程,則選擇『Library』:

843ebd50-964a-11ed-bfe3-dac502259ad0.png

C++ Library :該選項用于創建一個生成庫文件的工程,在編譯構建成功后,會生成一個庫文件(不同平臺下生成的庫文件不一樣),這個庫文件可以使用QPluginLoader加載或者Qt 應用程序在運行時加載使用,除此之外,生成的動態/靜態庫文件也用于其他工程項目在鏈接階段使用。

Qt Quick 2 Extension Plugin :該選項會創建一個C++插件,使用QQmlEngine類可以將Qt Quick擴展動態加載到應用程序中。也就是說,該選項會創建一個C++插件,這個插件是使用C++語言編寫的,我們可以在QtQuick qml項目工程中加載這個插件來使用。

Qt Creator Plugin :該選項用于創建一個能生成QtCreator插件的工程,在實際Qt開發中在選項使用較少。

四、其他項目

在QtCreator的『新工程創建向導』下,有一個其他項目選項:

8450aed4-964a-11ed-bfe3-dac502259ad0.png

我們可以使用該選項下的條目去創建實際項目開發過程中所需要的輔助項。

設計師自定義控制:該選項用于創建一個Qt Designer的自定義控件或者一個自定義控件集合。對于實際工程項目開發中所使用的UI控制,如果想把它做成自定義控件直接在Qt Designer中拖拽使用,則使用該選項。

Qt Quick UI Prototype :該選項用于創建帶有QML入口點的Qt Quick 2 UI項目。我們則可以在帶有QML運行時的情況下加載使用。也就是,該選項下僅僅會創建一個qml文件。(該選項創建的不是一個完整的Qt Quick 項目,如果想要一個完整的Qt Quick項目工程,則使用『Application(Qt)->Qt Quick Application』)

Auto Test Project :該選項用于創建一個新的單元測試項目,允許我們驗證代碼是否適合使用。該選項本質上則會創建一個基于QtTest的測試工程代碼模板。

子目錄項目 :該選項用于創建一個包含多個子項目的項目工程。如果一個項目中包含有多個子項目需要生成,例如,一個工程里面既要生成exe,又要生成dll庫文件,則選擇該選項,實現多個子項目的嵌套。(這個選項在實際開發中較為常用)

Empty qmake Project :該選項用于創建一個基于qmake的空項目,這允許創建一個沒有任何默認類的應用程序。也就是該選項是最原始的狀態,只會創建一個沒有任何內容的xxx.pro工程管理文件。

Code Snippet :該選項用于創建一個基于qmake的測試項目,可以為其預先輸入代碼片段。也就是我們可以在工程創建向導中寫入我們自己的代碼片段。

五、其他工程項目

還可以使用QtCreator的『新工程創建向導』創建不是Qt項目的工程:

84720c00-964a-11ed-bfe3-dac502259ad0.png

Plain C Application :該選項用于創建一個C語言簡單的工程:包含一個main.c文件,文件中生成的代碼僅包含了main()函數入口。

Plain C++ Application : 該選項用于創建一個C++語言簡單的工程:包含一個main.cpp文件,文件中生成的代碼僅包含了main()函數入口。

也就是說,使用QtCreator也能創建C/C++項目文件,只是需要注意編譯構建環境的配置和選擇。

六、Import Project選項

我們可以使用QtCreator導入由版本控制軟件管控的項目工程或者存在本地磁盤上的工程:

8497a398-964a-11ed-bfe3-dac502259ad0.png

Bazaar Clone(or Branch):Bazaar是一個分布式的版本控制系統。該選項用于想要使用Bazaar去Clone項目的場景。

Git Clone:Git同樣也是一個開源的分布式版本控制系統。該選項用于想要使用git去Clone項目的場景。(在實際項目開發實施過程中,這種方式較為常用)

Mercurial Clone:Mercurial是一種使用Python語言實現的輕量級分布式版本控制系統。該選項用于想要使用Mercurial去Clone項目的場景。

Subversion Checkout:Subversion是一種集中式的版本控制系統(簡稱為SVN)。該選項用于想要使用SVN去Clone項目的場景。(在實際項目開發實施過程中,這種方式也較為常用)

CVS Checkout:CVS是一個C/S系統,是一個常用的代碼版本控制軟件。該選項用于想要使用CVS去Clone項目的場景。

Import as qmake or CMake Project :導入不使用qmake、CMake、Qbs、Meson或Autotools的現有項目。該選項將創建一個項目文件,允許我們使用Qt Creator作為代碼編輯器,并作為調試和分析工具的啟動器。

導入現有項目:該選項將創建一個項目文件,允許我們使用Qt Creator作為代碼編輯器,并導入不使用qmake、CMake、Qbs、Meson或Autotools的現有本地項目。也就是說可以使用Qt Creator作為代碼編輯器去編輯現有的項目中文件。

七、總結

本文主要描述QtCreaotr的『新工程創建向導』下的一些選項。在實際Qt項目開發過程中,Application(Qt)選項是最常用的。

實際Qt項目開發中,最重要的是規劃項目文件和程序設計、編寫、調試。QtCreator的『新工程創建向導』為開發工作提供了許多的快捷方式,且自動生成了一些最基本的代碼,以加快開發效率。

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

    關注

    0

    文章

    341

    瀏覽量

    46877
  • 編程語言
    +關注

    關注

    10

    文章

    1950

    瀏覽量

    34979
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73853
  • Qt
    Qt
    +關注

    關注

    1

    文章

    308

    瀏覽量

    38062
  • QTcreator
    +關注

    關注

    0

    文章

    11

    瀏覽量

    6869

原文標題:哇哦,Qt新工程創建向導暗藏玄機...

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    全球PLD行業暗藏玄機,最終誰能浴火重生?

     電子發燒友網訊:全球PLD市場競爭玄機暗藏。PLD廠商欲圖搶占未來PLD市場份額這塊大蛋糕。Xilinx和Altera兩大巨頭的“明爭暗斗”可曾停止過?Lattice在兩座大山的強勢壓力下,是否有其
    發表于 12-29 10:28 ?4636次閱讀

    廢電池“暗藏玄機”栗廣普變廢為寶

    廢電池“暗藏玄機”栗廣普變廢為寶      在延邊供電公司有一位心靈手巧的能工巧匠,他善思考、勤動手,常常把別人視為破銅爛鐵的廢
    發表于 02-27 08:45 ?1627次閱讀

    Qt宣布新工具包 Qt for MCU支持單片機

    轉載至IT之家:https://www.ithome.com/0/441/346.htmQt 公司已經宣布了它的新工具包:Qt for MCU。Qt for MCU將能夠在沒有操作系統的設備上運行
    發表于 07-01 10:16

    單片機之創建新工程簡析

    松翰單片機之創建新工程
    發表于 01-05 07:29

    紅米Note 4X對比紅米Note 4:不止是換芯版 細微之處暗藏玄機

    在換上驍龍625芯片后,紅米Note 4X憑借千元有找的價格優勢吸引了不少消費者的關注。但我們也注意到紅米Note 4X并不僅是Note 4換芯版,在細微之處卻暗藏玄機
    發表于 03-20 17:03 ?3w次閱讀

    怎么在AVR Studio5創建一個新工程

    怎么在AVR Studio5創建一個新工程
    的頭像 發表于 07-04 09:51 ?3610次閱讀

    美容儀界暗藏玄機,宙斯美容儀不一定是最劃算的

    肌膚保養,更加輕松與方便。中國女明星張雨綺在開通不久的美妝賬號上就特別推薦了一款美容儀:價值將近一萬的宙斯美容儀!這款美容儀界的愛馬仕對于我們普通消費者來說劃算嗎?美容儀界也暗藏玄機,選擇最適合的自己的才是最好的。 日
    發表于 04-01 20:25 ?3024次閱讀

    對講機具備哪些“高級”應用,有哪些使用技巧

    小小的對講機看似簡單,實則暗藏玄機,處處都有講究。今天和你分享這些“高級”使用技巧,你都知道嗎?
    發表于 10-10 10:47 ?1002次閱讀

    TMS320F28377新工程創建與基礎工程配置教程說明

    本文檔的主要內容詳細介紹的是TMS320F28377新工程創建與基礎工程配置教程說明。
    發表于 10-19 08:00 ?27次下載
    TMS320F28377<b class='flag-5'>新工程</b>的<b class='flag-5'>創建</b>與基礎<b class='flag-5'>工程</b>配置教程說明

    如何在vivado創建新工程上使用IP集成器創建塊設計

    本文介紹如何在 vivado 開發教程(一) 創建新工程 的基礎上, 使用IP集成器, 創建塊設計。
    的頭像 發表于 02-08 10:47 ?2520次閱讀
    如何在vivado<b class='flag-5'>創建</b><b class='flag-5'>新工程</b>上使用IP集成器<b class='flag-5'>創建</b>塊設計

    Qt宣布新工具包 Qt for MCU,支持單片機

    轉載至IT之家:https://www.ithome.com/0/441/346.htmQt 公司已經宣布了它的新工具包:Qt for MCU。Qt for MCU將能夠在沒有操作系統的設備上運行
    發表于 10-25 17:51 ?11次下載
    <b class='flag-5'>Qt</b>宣布<b class='flag-5'>新工</b>具包 <b class='flag-5'>Qt</b> for MCU,支持單片機

    STP和SFTP網線暗藏什么玄機秘密-科蘭

    我們在購買網線的時候可以看到會印有STP和SFTP之類的字母,那這些字母有什么含義呢,STP和SFTP網線暗藏什么玄機秘密,下面就和科蘭通訊小編一起來看看吧! STP和SFTP網線暗藏什么玄機
    發表于 11-15 10:37 ?1670次閱讀

    話聊QtCreator的新文件創建向導

    當使用QtCreator的『新工程創建向導創建好一個最基本的項目工程后,我們則需要往項目工程
    的頭像 發表于 01-29 15:06 ?957次閱讀

    如何在Automation Builder中創建一個新工程

    本節主要介紹如何在Automation Builder中創建一個新工程創建工程項目樹的基本結構,以及如何跟PLC建立連接等。 2_具體操作介紹 1.新建
    發表于 03-08 15:44 ?1633次閱讀
    如何在Automation Builder中<b class='flag-5'>創建</b>一個<b class='flag-5'>新工程</b>

    中文編程鴻蒙Hi3861開發基礎案例之-01創建新工程

    中文編程鴻蒙Hi3861開發創建新工程
    的頭像 發表于 05-11 09:53 ?2900次閱讀
    中文編程鴻蒙Hi3861開發基礎案例之-01<b class='flag-5'>創建</b><b class='flag-5'>新工程</b>
    电子百家乐规则| 大发888在线充值| 大杀器百家乐官网学院| 998棋牌游戏| 百家乐官网棋牌游戏源码| 大发888游戏论坛| 伟德百家乐下载| 韩城市| 百家乐第三张规则| 在线百家乐平台| 如何玩百家乐官网游戏| 澳门百家乐鸿运| 网上的百家乐官网怎么才能| 真人百家乐官网开户须知| 金字塔百家乐的玩法技巧和规则| 贝博百家乐官网的玩法技巧和规则 | 足球百家乐网上投注| 网上百家乐官网乐代理| 百家乐官网是骗人吗| 易盈娱乐| 大发888娱乐老虎机| 百家乐打揽法| 百家乐破解仪恒达| 澳门百家乐玩| 澳门百家乐视频| 百家乐闲庄概率| 百家乐官网投资| 百家乐官网网址官网| 百家乐官网打水套利| 百家乐官网算点子打法攻略| 六合彩特码开奖| 网上现金棋牌游戏| 顶级赌场| 百家乐扑克牌手机壳| 百家乐小路单图解| 最新百家乐网评测排名| 百家乐合理的投注法| 乐天堂百家乐官网赌场娱乐网规则 | 百家乐稳赢技法| 百家乐澳门赌| 全讯网最方便的新全讯网|