Qt6入门教程 3:创建Hello World项目

一.新建一个项目

程序员的职业生涯都是从一声问候开始的,我们的第一个Qt项目也是HelloWorld
首先要说明的是,IDE不一定要用Qt Creator,用Visual Studio、VSCode、CLion也可以搭建Qt开发环境,它们都相应的插件来支持Qt开发。当然这些IDE没有高低贵贱之分,纯属个人习惯而已,我平时就是Qt Creator做开发的,而且作为Qt教程,不用官方提供的开发工具来演示,也不太合适啊。
1.Qt 6.6.1自带的Qt Creator版本是12.0.1,打开后默认显示欢迎界面。点击“创建项目”按钮,或点击菜单项“文件”—>“New File or Project…”,弹出“New Project”对话框

2. 我们选择应用层序类型为“Qt Widgets Application”,然后点击“选择…”按钮

项目模板说明
ApplicationQt 应用程序,包括普通窗体程序和 QtQuick 程序。
Library(库)可以创建动态库、静态库以及 QtQuick 扩展插件、QtCreator 自身插件。
其他项目Qt4 设计师自定义控件、子目录项目、空的QMake项目等。
Non-Qt Project非 Qt 项目。可以创建纯 C 或纯 C++ 项目。
Test Project创建单元测试项目,
Import Project(导入项目)导入项目。从版本控制系统管理的软件项目导入旧的项目。
应用程序类型说明
Qt Widgets Application支持桌面平台的有GUI(Graphic User Interface,图形用户界面)界面的应用程序,GUI的设计完全基于C++语言,采用Qt提供的一套C++类库。
Qt Console Application控制台应用程序,无GUI界面,一般用于学习C/C++语言,只需要简单的输入输出操作时创建此类项目。
Qt Quick Application创建可部署的Qt Quick应用程序。Qt Quick是Qt支持的一套GUI开发架构,其界面设计采用QML语言,交互逻辑采用C++语言。利用Qt Quick可以设计非常炫的用户界面,一般用于移动设备或嵌入式设备上无边框的应用程序的设计。
Qt Quick Application(compat)

创建一个空窗口,为了兼容非CMake构建系统或低于Qt6的Qt版本。

Test Project创建单元测试项目。
Import Project(导入项目)导入项目。从版本控制系统管理的软件项目导入旧的项目。

3.输入项目名称并选择项目创建路径。这样新建项目后,会在“C:\Users\zhang\Documents”目录下新建一个目录HelloWorld,项目所有文件保存在这个目录中。

4.这里Build system下拉列表中有三个选项,虽然Qt6主推CMake,但qmake依然支持,由于之前一直用的是qmake,比较熟悉,这里选择qmake。

5.类信息页面,默认就好

类信息页面,最关键的是基类的选择,目前有三种基类:

基类说明
QMainWindow基于主窗口类的程序,一般用于较为复杂的应用程序,除了中央客户区界面,还可以包括菜单栏、工具栏、状态栏以及多个可停靠的 工具对话框等等。
QWidget最简单最基本的窗体程序,里面可以放置多个控件实现程序功能。
QDialog基于对话框的程序,对话框一般用于弹窗,也可以用于主界面显示。对话框是从 QWidget 继承而来的,并丰富了一些功能,如模态显示和返回值等。

6.翻译文件页面,也默认 

7.选择构建套件,这里之所以同时出现Desktop Qt6.6.1 MinGW 64-bit和Desktop Qt 6.6.1 MSVC2019 64bit,是因为安装Qt 6.6.1的时候,我们勾选了“MinGW 11.2.0 64-bit”和“MSVC 2019 64-bit”

Qt 套件是指 Qt 程序从编译链接到运行环境的全部工具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序生成和调试,至少需要 MinGW 中的编译器 g++(自动调用链接器)、g++ 配套的基础库、调试器 gdb 还有使用 MinGW 环境编译而成的 Qt 类库自身。

8. 接下来进入项目管理页面,默认就行,印象中没人用Qt Creator做版本管理。

9. 项目创建完成之后,Qt Creator会自动进入代码编辑模式,如下图所示

二.项目的文件组成

上图左侧的目录树显示了项目内文件的组织结构,当前项目为HelloWorld。项目的名称构成目录树的一个根节点,Qt Creator可以打开多个项目,但是只有一个活动项目(Active Project),活动项目的项目名称节点用粗体字体表示。
在项目名称节点下面,分组管理着项目内的各种源文件,几个文件及分组分别是:
HelloWorld.pro是项目管理文件,包括一些对项目的设置项。
●头文件分组,该节点下是项目内的所有头文件(.h),该项目有一个头文件mainwindow.h,是主窗口类的头文件。
●源文件分组:该节点下是项目内的所有C++源文件(.cpp),该项目有两个C++源文件,mainwindow.cpp是主窗口类的实现文件,与mainwindow.h文件对应。main.cpp是主函数文件,也是应用程序的入口。
●界面分组:该节点下是项目内的所有界面文件(.ui)。该项目有一个界面文件mainwindow.ui,是主窗口的界面文件。
双击文件目录树中的文件mainwindow.ui,会进入设计模式页面,设计模式页面实际上就是Qt Creator中集成的Qt Designer。我们将一个Label控件拖放到窗体界面上。双击刚刚放置的Label控件,可以编辑其文字内容,将文字内容更改为“Hello World”并将字号Point Size更改为12。详见下面的动图。

三.项目的编译、运行和调试

图标作用
弹出菜单选择编译工具和编译模式,如Debug或Release模式。
直接运行程序,如果修改后未编译,会先进行编译。即使在程序中设置了断点,此方式运行的程序也无法调试。快捷键Ctrl+R
项目需要以Debug模式编译,点此按钮开始调试运行,可以在程序中设置断点。若是以Release模式编译,点此按钮也无法进行调试。快捷键F5
编译当前项目,但不运行。快捷键Ctrl+B

对项目先编译,再运行,或者直接运行,不出意外的话,HelloWorld面世啦。

那么,生成的可执行文件在哪儿呢?
在这里:C:\Users\zhang\Documents\build-HelloWorld-Desktop_Qt_6_6_1_MinGW_64_bit-Debug\debug\HelloWorld.exe
中间有一级很奇怪的目录build-HelloWorld-Desktop_Qt_6_6_1_MinGW_64_bit-Debug,它是何时指定的呢?
我们切换到项目模式,如下图所示

可以看到Shadow Build复选框默认是勾选的,如果勾选此项,编译后将在项目的同级目录下建立一个编译后的文件目录,目录名称包含编译器信息,这种方式一般用于使用不同编译器创建不同版本的可执行文件。如果不勾选此项,编译后将在项目的目录下建立“Debug”和“Release”子目录用于存放编译后的文件。
调试的话,与其他IDE相似,先打断点,然后按键盘的F5,下图是进入了断点的状态。

原文链接:https://blog.csdn.net/caoshangpa/article/details/135428677 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/326762.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未完成销量任务的智己汽车突发大规模车机故障,竞争压力不小

2024年刚开年,智己汽车便上演了一出“开门黑”。 近日,不少车主在社交平台发帖,反映智己LS6出现大规模车机故障,包括但不限于主驾驶屏幕不显示车速、档位、行驶里程,左右转盲区显示失效,无转向灯、雷达提醒…

Linux部署Yearning并结合内网穿透工具实现公网访问本地web管理界面

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…

损失函数篇 | YOLOv8 引入 Shape-IoU 考虑边框形状与尺度的度量

作者导读:Shape-IoU:考虑边框形状与尺度的度量 论文地址:https://arxiv.org/abs/2312.17663 作者视频解读:https://www.bilibili.com 开源代码地址:https://github.com/malagoutou/Shape-IoU/blob/main/shapeiou.py…

【激活函数】PReLU 激活函数

1、介绍 PReLU(Parametric Rectified Linear Unit)激活函数是ReLU(Rectified Linear Unit)激活函数的一种改进。它是由 He et al. 在 2015 年提出的,旨在解决ReLU激活函数的一些局限性。 # 定义 PReLU 激活函数 prelu…

合合TextIn团队发布 - 文档图像多模态大模型技术发展、探索与应用

合合信息TextIn(Text Intelligence)团队在2023年12月31日参与了中国图象图形学学会青年科学家会议 - 垂直领域大模型论坛。在会议上,丁凯博士分享了文档图像大模型的思考与探索,完整阐述了多模态大模型在文档图像领域的发展与探索…

FSMC—扩展外部SRAM

一、SRAM控制原理 STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。STM32F103ZE系列芯片可以扩展外部SRAM用作内存。 给STM32芯片扩展内存与给…

9个最受欢迎的开源自动化测试框架盘点

如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。 自动化测试框架可以帮助测试人员评估多个web和移动应用程序的功能,安全性,可用性和可访…

Mac启动时候出现禁止符号

Mac启动时候出现禁止符号 启动时候出现禁止符号,意味着 选定的启动磁盘 包含 Mac 操作系统,但它不是 您的 Mac 可以使用的 macOS 。您应该在这个磁盘上 重新安装 macOS 。 可以尝试以下苹果提供的方法: Mac启动时候出现禁止符号 不要轻易抹除磁盘&am…

Http与Tcp协议的原理以及应用

OSI七层模型和相关协议 七层模型从上到下如下所示: 应用层:负责应用之间的通信,处理请求和响应的具体格式表示层:对于数据格式进行处理会话层:负责建立和断开通信连接,传输层:负责建立端口之间…

【AI视野·今日NLP 自然语言处理论文速览 第六十七期】Mon, 1 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 1 Jan 2024 Totally 42 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Principled Gradient-based Markov Chain Monte Carlo for Text Generation Authors Li Du, Afra Amini, Lucas…

哈希一致性算法

一致性哈希是什么,使用场景,解决了什么问题? #网站分配请求问题? 大多数网站背后肯定不是只有一台服务器提供服务,因为单机的并发量和数据量都是有限的,所以都会用多台服务器构成集群来对外提供服务。 但…

项目从npm迁移到pnpm

场景如下:在安装Vue3时默认为使用Npm安装,如图所示: 安装完后项目就包含了基于NPM的node_modules、package.json,以及package-lock.json 如果想使用pnpm去安装依赖项的话,可以通过如下几个步骤实现: ①删…