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 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

气动凝结水回收机组 浮球机械泵回收机组工作原理动画讲解介绍

​ 1:气动凝结水回收浮球机械泵介绍 气动凝结水回收是一种利用气动力转换产生负压的装置,可以将废气中的水分分离出来并回收利用。这种装置主要包含两个关键部件:气水分离器和气动运动控制阀。 气水分离器负责将进入回收装置的废气中的水分…

transforms图像增强(二)

一、图像变换 1、transforms.Pad transforms.Pad是一个用于对图像边缘进行填充的数据转换操作。 参数: padding:设置填充大小。可以是单个整数,表示在上下左右四个方向上均填充相同数量的像素;也可以是一个包含两个整数的元组…

粉丝投稿:从写下第1个脚本到年薪20W,我的自动化测试心路历程

我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。 你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。 每…

印象笔记02: 笔记本管理系统和空间使用

印象笔记02: 笔记本管理系统和空间使用 印象笔记新建笔记是一件非常容易的事情。笔记多了,就是归纳到笔记本里。 印象笔记一共有三层的笔记结构:最高层级是笔记本组,其次是笔记本,最后是一个个的笔记。合理的分类能够…

SpringCloud系列篇:核心组件之注册中心组件

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.注册中心组件是什么 二.注册中心…

一键转换,创新无限:将HTML轻松转化为PDF!

在数字时代,HTML与PDF已成为信息传递的两大主流格式。然而,在这两者之间转换常常让人感到困扰。现在,有了我们的创新工具,您只需轻点一下,即可一键将HTML转化为PDF! 首先,我们要进入首助编辑高…

(Python + Selenium4)Web自动化测试自学Day2之动手尝试

目录 文章声明⭐⭐⭐让我们开始今天的学习吧!小试牛刀关于select标签关于弹窗只有一个点击按钮的弹窗需要确认的弹窗用户可以输入的弹窗 文章声明⭐⭐⭐ 该文章为我(有编程语言基础,非编程小白)的 Python Selenium4 Web自动化测试…

HttpRunner自动化测试工具之获取响应数据extract提取值到变量

获取响应数据 extract: 提取 注:extract 应与request保持同一层级 1、响应行,响应头;通过 extract 提取响应的数据并存储到变量中,如下图: 注:变量名的前面要有 - # 获取响应数据: 响应行(…

【年终总结系列 2023】成长与收获:回顾过去、展望未来,加油2024!

转眼间加入CSDN已经六年多了,初加入CSDN时,我兴致勃勃地投入到写作中,分享了一些CTF的解题思路和方法,取得了不错的反响。但随着工作忙碌和生活压力的增加,我在CTF方面的写作频率逐渐减少,也很长时间没有更…

Linux离线安装MySQL(rpm)

目录 下载安装包安装MySQL检测安装结果服务启停MySQL用户设置 下载安装包 下载地址:https://downloads.mysql.com/archives/community/ 下载全量包如:(mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar) 解压:tar -xzvf mysql-8.1.0-1.el7.x86_64.…

国家高等教育智慧教育平台

文章目录 1. 网站地址2. 网站简介3. 网站集合的资源与依托平台彩蛋环节a. 考试酷b. 公益学术平台 足不出户,就能免费学习2.7万门大学课程。包含国家精品课程,部分课程由国家级名师 / 院士 授课。 1. 网站地址 国家高等教育智慧教育平台网址:…

架构的本质是什么?

最近总是有小伙伴问我,如何成长为一名优秀的架构师,我也不知道该如何去回答,但是我想聊一下架构的本质。 架构不是互联网行业独有的 架构及对应的架构师职位并不是互联网行业独有的,只要存在组织的地方就存在架构。 比如一个木…

【C++】vector

文章目录 1. vector 的介绍2. vector 的使用2.1 vector 的定义2.2 vector iterator 的使用2.3 vector 的空间增长问题2.3 vector 增删查改 1. vector 的介绍 vector的文档介绍 vector是表示可变大小数组的序列容器。就像数组一样,vector也采用连续的存储空间来存储…

程序员必知!责任链模式的实战应用与案例分析

责任链模式让多个对象依次处理请求,降低发送者和接收者的耦合度,以在线购物为例,用户提交订单需经多步验证,通过责任链模式,验证器按顺序处理请求,先用户身份,再支付方式,最后配送地…

【LMM 011】MiniGPT-5:通过 Generative Vokens 进行交错视觉语言生成的多模态大模型

论文标题:MiniGPT-5: Interleaved Vision-and-Language Generation via Generative Vokens 论文作者:Kaizhi Zheng* , Xuehai He* , Xin Eric Wang 作者单位:University of California, Santa Cruz 论文原文:https://arxiv.org/ab…

java的面向对象编程(oop)概述及案例

前言: 学到了面向对象编程,整理下相关知识点。打牢基础,daydayup! 面向对象基础概述 1,什么是面向对象,面向对象的思考逻辑是什么? 面向对象就是把任何事物都看成一个又一个对象。思考逻辑为万物皆对象&am…

计算机毕业设计 基于javaweb的宠物认养系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

STHS34PF80人体存在传感器(1)----获取人体存在状态

STHS34PF80人体存在传感器.1--获取人体存在状态 概述视频教学样品申请完整代码下载主要特点硬件准备接口最小系统图生成STM32CUBEMX串口配置IIC配置CS设置串口重定向参考案例获取ID温度测量滤波方式智能识别算法使用块数据更新(BDU)功能设置ODR速率获取状…

多类指针式仪表自动读数系统的LabVIEW开发应用案例

多类指针式仪表自动读数系统的LabVIEW开发应用案例 工业环境中,多类指针式仪表的自动读数一直是一个具有挑战性的问题。本案例旨在展示如何使用LabVIEW开发一个高度智能化的多类指针式仪表自动读数系统,以应对复杂的工业环境。通过结合图像处理技术和深…

DDoS攻击的多种方式

DDOS攻击指分布式拒绝服务攻击,即处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务…