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

    文章

    326

    浏览量

    46340
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33148
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72901
  • Qt
    Qt
    +关注

    关注

    1

    文章

    299

    浏览量

    37340
  • QTcreator
    +关注

    关注

    0

    文章

    11

    浏览量

    6713

原文标题:哇哦,Qt新工程创建向导暗藏玄机...

文章出处:【微信号:嵌入式小生,微信公众号:嵌入式小生】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    全球PLD行业暗藏玄机,最终谁能浴火重生?

     电子发烧友网讯:全球PLD市场竞争玄机暗藏。PLD厂商欲图抢占未来PLD市场份额这块大蛋糕。Xilinx和Altera两大巨头的“明争暗斗”可曾停止过?Lattice在两座大山的强势压力下,是否有其
    发表于 12-29 10:28 4445次阅读

    废电池“暗藏玄机”栗广普变废为宝

    废电池“暗藏玄机”栗广普变废为宝      在延边供电公司有一位心灵手巧的能工巧匠,他善思考、勤动手,常常把别人视为破铜烂铁的废
    发表于 02-27 08:45 1499次阅读

    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次阅读

    “蹭网一族”要当心 公共WiFi暗藏玄机

    随着无线通信技术的革新,现在满大街都可以连接到公共WiFi,再也不愁没信号,没流量,打开APP就可以轻松联网。但是公共WiFi是否真的存在保护措施,其实公共WiFi隐患多,“免费”中间藏玄机
    发表于 12-19 16:42 466次阅读

    怎么在AVR Studio5创建一个新工程

    怎么在AVR Studio5创建一个新工程
    的头像 发表于 07-04 09:51 3318次阅读

    美容仪界暗藏玄机,宙斯美容仪不一定是最划算的

    肌肤保养,更加轻松与方便。中国女明星张雨绮在开通不久的美妆账号上就特别推荐了一款美容仪:价值将近一万的宙斯美容仪!这款美容仪界的爱马仕对于我们普通消费者来说划算吗?美容仪界也暗藏玄机,选择最适合的自己的才是最好的。 日
    发表于 04-01 20:25 2887次阅读

    对讲机具备哪些“高级”应用,有哪些使用技巧

    小小的对讲机看似简单,实则暗藏玄机,处处都有讲究。今天和你分享这些“高级”使用技巧,你都知道吗?
    发表于 10-10 10:47 851次阅读

    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 2127次阅读
    如何在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 10次下载
    <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 936次阅读

    话聊QtCreator的新文件创建向导

    当使用QtCreator的『新工程创建向导创建好一个最基本的项目工程后,我们则需要往项目工程
    的头像 发表于 01-29 15:06 527次阅读

    如何在Automation Builder中创建一个新工程

    本节主要介绍如何在Automation Builder中创建一个新工程创建工程项目树的基本结构,以及如何跟PLC建立连接等。 2_具体操作介绍 1.新建
    发表于 03-08 15:44 858次阅读
    如何在Automation Builder中<b class='flag-5'>创建</b>一个<b class='flag-5'>新工程</b>