Qt Creator(2)【如何在Qt Creator中创建新工程】

阅读导航

  • 引言
  • 一、Qt Creator开始界面介绍
  • 二、如何在Qt Creator中创建新工程
    • 1. 新建项目
    • 2. 选择项目模板
    • 3. 选择项目路径
    • 4. 选择构建系统
    • 5. 填写类信息设置界面
    • 6. 选择语言和翻译文件
    • 7. 选择Qt套件
    • 8. 选择版本控制系统
    • 9. 最终效果
  • 三、认识Qt Creator项目内容界面
    • 1. 基本界面
    • 2. UI设计界面
    • 3. 构建区

引言

Qt Creator提供了一套完整的工具集,旨在简化并加速Qt应用程序的开发流程。它不仅包括代码编辑、界面设计、版本控制等功能,还提供了代码自动补全、自定义构建系统和强大的调试工具。通过今天的学习,我们将掌握Qt Creator的基本使用,从创建项目、编写代码到应用程序的调试和部署,全方位提升我们的开发效率和体验。接下来,让我们一起探索Qt Creator的世界,让Qt开发变得更加得心应手。

一、Qt Creator开始界面介绍

在这里插入图片描述
①:菜单栏:菜单栏⼀共有8个菜单选项,包含了常⽤的功能菜单:

菜单功能描述
文件包含了新建、打开、关闭项目和文件、打印和退出等基本功能
编辑包含了撤销、剪切、复制、查找和选择编码等功能
构建包含构建和运行项目等相关功能。
调试包含调试运行项目等相关功能。
Analyze包含QML分析器、Valgrind内存和性能分析器等相关功能。
工具提供了快速定位菜单、外部工具菜单等。这里的选项菜单中包含了Qt Creator各个方面的设置选项:环境设置、文本编辑器设置、帮助设置、构建和运行设置、调试器设置和版本控制设置等。
控件包含了设置窗口布局的一些菜单,如全屏显示和隐藏边栏功能等。
帮助包含Qt帮助、Qt Creator版本信息、报告bug和插件管理等菜单。

②:模式选择

模式功能描述
欢迎模式提供功能的快捷入口,如打开帮助教程、示例程序、项目、新建项目、快速打开以前的项目和会话、联网查看Qt官方论坛和博客等。示例页面显示了Qt自带的大量示例程序,并提供了搜索栏以实现快速查找;教程页面提供了一些视频教程资源,但为英文。
编辑模式主要用来查看和编辑程序代码,管理项目文件。Qt Creator中的编辑器具有关键字特殊颜色显示、代码自动补全、声明定义间快捷切换、函数原型提示、F1键快速打开相关帮助和全项目中进行查找等功能。也可以在"工具->选项"菜单中对编辑器进行设置。
设计模式整合了Qt Designer的功能。可以设计图形界面,进行部件属性设置、信号和槽设置、布局设置等操作。
调试模式支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程以及快照等查看窗口。
项目模式包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系等页面。构建设置中可以对项目的版本、使用的Qt版本和编译步骤进行设置;编辑器设置中可以设置文件的默认编码;在代码风格设置中可以设置自己的代码风格。
帮助模式在帮助模式中将Qt助手整合了进来,包含目录、索引、查找和书签等几个导航模式,可以在帮助中查看Qt和Qt Creator的各方面信息。

③:构建套件选择器:构建套件选择器包含了⽬标选择器(Target selector)、运⾏按钮(Run)、调试按钮(Debug)和构建按钮(Building)四个图标。

组件功能描述
目标选择器用来选择要构建哪个项目、使用哪个Qt库,对于多个Qt库的项目很有用。还可以选择编译项目的debug版本或是release版本。
运行按钮实现项目的构建和运行。
调试按钮实现项目的调试。
构建按钮完成项目的构建。

④:欢迎模式下的窗⼝⼯作⽅式

菜单功能描述
Project用来新建工程、打开工程。
示例包含Qt官方的一些示例。
教程提供Qt官方教程。

⑤:定位器:使⽤定位器来快速定位项⽬、⽂件、类、⽅法、帮助⽂档以及⽂件系统。可以使⽤过滤器来更加准确地定位要查找的结果。

⑥:输出窗格:输出窗格包含了问题、搜索结果(Search Results)、应⽤程序输出、编译输出、Debugger Console、概要信息、测试结果(Test Results)7个选项,它们分别对应⼀个输出窗⼝,响应的快捷键依次是Alt+数字1~7。

窗口名称功能描述
问题问题窗口显示程序编译时的错误和警告信息。
Search Results搜索结果窗口显示执行了搜索操作后的结果信息。
应用程序输出应用程序窗口显示应用程序运行过程中输出的所有信息。
编译输出编译输出窗口显示程序编译过程输出的相关信息。

⑦:会话记录:可以对会话进⾏管理,包括 Clone。如果没打开⼯程,则显⽰的是最后⼀次打开的(会话)⼯程,否则,显⽰当前的会话(⼯程)。

⑧:新建项目

⑨:打开已有项目

二、如何在Qt Creator中创建新工程

1. 新建项目

打开Qt Creator,在菜单栏中选中:“⽂件”-------->“新建⽂件或项⽬”;或者使⽤快捷键:Ctrl +
n;或者直接点击:“new”;
在这里插入图片描述
在欢迎模式下,直接点击New,如下图⽰:
在这里插入图片描述

2. 选择项目模板

在这里插入图片描述
新建项⽬对话框⾥有五类项⽬模板

项目模板说明
ApplicationQt应用程序,包括普通窗体程序和QtQuick程序。
Library可以创建动态库、静态库以及QtQuick扩展插件、QtCreator自身插件。
其他项目可以创建单元测试项目、Qt4设计师自定义控件、子目录项目等。
Non-Qt-Project非Qt项目。可以创建纯C或纯C++项目。
Import Project导入项目。从版本控制系统管理的软件项目导入旧的项目。

常⽤的只有第⼀类Application,选择它,在右侧会看到Qt应⽤程序的五个⼦模板

  • Qt Widgets Application:普通窗体模板,传统基于部件的窗体界⾯程序。
  • Qt Console Application:Qt 控制台应⽤程序。因为 Qt 主要⽤于图形界⾯设计,这个控制台项⽬模板基本不⽤。
  • Qt for Python:在Python下⽤LGPL的许可来开发闭源 Qt软件。
  • Qt Quick Application: Qt 提供的⼀种⾼级⽤⼾界⾯技术,使⽤它可以⽅便快速的为移动以及嵌⼊式设备开发流畅美观的⽤⼾界⾯。Qt Quick 模块是开发QML应⽤的标准库,提供了使⽤QML创建⽤⼾界⾯所需的⼀切,包括可视化、交互、动画、模型、视图、粒⼦效果以及着⾊效果等。

3. 选择项目路径

给Qt项⽬命名及选择保存项⽬的路径

在这里插入图片描述

4. 选择构建系统

选择Qt项⽬的构建系统,使⽤默认的"qmake"即可
在这里插入图片描述
Qt中的构建⼯具有三种可供选择,分别是:qmake、CMake、Qbs,下⾯依次介绍。

  • qmake:qmake是⼀个构建⼯具(build tool),⽤于⾃动⽣成makefile⽂件。qmake⽀持跨平台构建。qmake编辑的是⼀个后缀名为.pro的⽂件。
  • CMake:CMake是⼀个跨平台的构建⼯具。CMake本⾝不是⼀个编译器,其实就是⽣成⼀个让编译器能读懂编译流程的⽂件⼯具。让CMake⾃动⽣成构建系统,例如Makefile和Visual Studio项⽬⽂件。CMake是⼀个第三⽅⼯具,有⾃⼰的⽂档。
  • Qbs:Qbs(Qt Build Suite:Qt构建套件)同qmake、CMake⼀样都是构建⼯具。Qbs 号称是新⼀代的构建⼯具,⽐ qmake 编译速度更快。Qbs 没有绑定Qt版本,它从项⽬⽂件的⾼级项⽬描述中⽣成⼀个正确的依赖表。⽽传统的MakeFile⽣成⼯具如qmake和CMake,其在⽣成MakeFile⽂件后将实际的命令交给Make⼯具去执⾏。

Qt官⽅声明,因市场原因,弃⽤Qbs。对于Qt⽤⼾来说,qmake是当前使⽤最⼴泛的构建⼯具,CMake其次。

5. 填写类信息设置界面

在这里插入图片描述
对于基类的选择,⽬前有三种基类:

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

上述三个类之间的关系如下图:
在这里插入图片描述

6. 选择语言和翻译文件

点击"下⼀步"进⼊如下界⾯:
在这里插入图片描述

此处选择的语⾔是"汉语",“英语"这样的语⾔。⽽不是"编程语⾔”.
一般是不用设置的

7. 选择Qt套件

在这里插入图片描述

默认只有第⼀个"Desktop Qt 5.14.2 MinGW 64-bit",如果安装配置了多个Qt套件,就可以都选上。

Qt套件是指Qt程序从编译链接到运⾏环境的全部⼯具和Qt类库的集合,对于MinGW版本Qt程序⽣成和调试,⾄少需要MinGW中的编译器g++(⾃动调⽤链接器)、g++配套的基础库、调试器gdb还有使⽤MinGW环境编译⽽成的Qt类库⾃⾝。默认情况下,在上⾯Kit Selection⾥选中全部套件。

8. 选择版本控制系统

点击"下⼀步"进⼊项⽬管理界⾯;在项⽬管理界⾯可以设置作为⼦项⽬,以及加⼊版本控制系统管理。这两个功能暂时⽤不到,都⽤默认的<None>,然后点击"完成"。

在这里插入图片描述

9. 最终效果

在这里插入图片描述

三、认识Qt Creator项目内容界面

1. 基本界面

在这里插入图片描述

2. UI设计界面

双击widget.ui⽂件,Qt Creator会⾃动进⼊设计模式,可以对图形界⾯进⾏可视化编辑:
在这里插入图片描述
①:组件选择窗⼝:组件选择窗⼝分为多个组,如Layouts、Buttons、Display Widgets等,界⾯设计的常⻅组件都可以在组件选择窗⼝中找到。
②:UI设计窗⼝:如果要将某个组件放置到该窗⼝上时,从组件选择窗⼝上拖放⼀个组件到窗体上即可。
③:动作编辑窗⼝:动作编辑窗⼝包括Action Editor以及Signals和Slots编辑器。Action Editor主
要是⽤来新建Action,并且通过拖拽的动作,将新建好的Action添加到菜单栏和⼯具栏上;Signals
和Slots编辑器⽤于可视化地进⾏信号与槽的关联。
④:对象浏览窗⼝:⽤树状视图显⽰窗体上各组件之间的布局包含关系,视图有两列,显⽰每个组件
的对象名称(ObjectName)和类名称。
⑤:属性设置窗⼝:显⽰某个选中的组件或窗体的各种属性及其取值,可以在属性设置窗⼝⾥修改这
些属性的值。

3. 构建区

在这里插入图片描述
这⾥有三种构建模式

模式说明
Debug以"-g"模式编译,带着符号信息,优点是便于调试。
ProfileProfile是在"Debug"和"Release"之间取一个平衡,兼顾性能和调试,可以类似的看做是性能更优又方便调试的版本。
Release"Release"是经过优化之后,性能比"Debug"更上一个档次。

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

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

相关文章

go语言初识别(五)

本博客内容涉及到&#xff1a;切片 切片 1. 切片的概念 首先先对数组进行一下回顾&#xff1a; 数组定义完&#xff0c;长度是固定的&#xff0c;例如&#xff1a; var num [5]int [5]int{1,2,3,4,5}定义的num数组长度是5&#xff0c;表示只能存储5个整形数字&#xff0c…

检索模型预训练方法:RetroMAE

论文title&#xff1a;https://arxiv.org/pdf/2205.12035RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder 论文链接&#xff1a;https://arxiv.org/pdf/2205.12035 摘要 1.一种新的MAE工作流&#xff0c;编码器和解器输入进行了不同的掩…

华为OD机试【计算最接近的数】(java)(100分)

1、题目描述 给定一个数组X和正整数K&#xff0c;请找出使表达式X[i] - X[i1] … - X[i K 1]&#xff0c;结果最接近于数组中位数的下标i&#xff0c;如果有多个i满足条件&#xff0c;请返回最大的i。 其中&#xff0c;数组中位数&#xff1a;长度为N的数组&#xff0c;按照元…

软件性能测试有哪些测试类型和方法?

软件性能测试是一种通过模拟真实用户使用情况&#xff0c;评估软件系统在各种压力和负载下的表现的测试方法。在今天这个讲究效率的时代&#xff0c;软件性能测试是不可或缺的一环。它能帮助开发人员和企业发现潜在的性能问题&#xff0c;提前优化改进&#xff0c;保证软件系统…

动态内存管理—C语言通讯录

目录 一&#xff0c;动态内存函数的介绍 1.1 malloc和free 1.2 calloc 1.3 realloc 1.4C/C程序的内存开辟 二&#xff0c;通讯录管理系统 动态内存函数的介绍 malloc free calloc realloc 一&#xff0c;动态内存函数的介绍 1.1 malloc和free void* malloc (…

回文链表(快慢指针解法之在推进过程中反转)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;抱怨深处黑暗&#xff0c;不如提灯前行…

代码随想录算法训练营day14|二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代法

二叉树的递归遍历 首先需要明确的一点是&#xff0c;前序中序和后序在二叉树的递归遍历中的区别仅在于递归函数中操作的顺序&#xff0c;前序是在遍历一个节点的左右子树前进行操作&#xff0c;中序是在遍历一个节点的左子树后进行操作再遍历右子树&#xff0c;而后序是在遍历…

C++算术运算和自增自减运算

一 引言 表示运算的符号称为运算符。 算术运算&#xff1b; 比较运算&#xff1b; 逻辑运算&#xff1b; 位运算&#xff1b; 1 算术运算 算术运算包括加、减、乘、除、乘方、指数、对数、三角函数、求余函数&#xff0c;这些都是算术运算。 C中用、-、*、/、%分别表示加、减…

《当微服务遇上Ribbon:一场负载均衡的华丽舞会》

在微服务的厨房里&#xff0c;如何确保每一道服务都恰到好处&#xff1f;揭秘Spring Cloud Ribbon如何像大厨一样精心调配资源&#xff0c;让负载均衡变得像烹饪艺术一样简单&#xff01; 文章目录 Spring Cloud Ribbon 详解1. 引言微服务架构中的负载均衡需求Spring Cloud Rib…

【算法实战】每日一题:设计一个算法,用最少数量的矩形覆盖一系列宽度为d、高度为w的矩形,且使用矩形不能超出边界

题目 设计一个算法&#xff0c;用最少数量的矩形覆盖一系列宽度为d、高度为w的矩形建筑物侧墙&#xff0c;且矩形不能超出边界。 核心思路 考虑这种结构 前面递增后面一个与前面的某个高度一致&#xff0c;这时候考虑最下面的覆盖&#xff08;即都是从最下面向上覆盖&#…

redis数据类型set,zset

华子目录 Set结构图相关命令sdiff key1 [key2]sdiffstore destination key1 [key2...]sinter key1 [key2...]sinterstore destination key1 [key2...]sunion key1 [key2...]sunionstore destination key1 [key2...]smove source destination memberspop key [count]sscan key c…

Java GC问题排查的一些个人总结和问题复盘

个人博客 Java GC问题排查的一些个人总结和问题复盘 | iwts’s blog 是否存在GC问题判断指标 有的比较明显&#xff0c;比如发布上线后内存直接就起飞了&#xff0c;这种也是比较好排查的&#xff0c;也是最多的。如果单纯从优化角度&#xff0c;看当前应用是否需要优化&…

Unity实现首行缩进两个字符

效果 在Unity中如果想实现首行缩进两个字符&#xff0c;你会发现按空格是没法实现的。 实现原理&#xff1a;用空白的透明的字替代原来的位置。 代码&#xff1a; <color#FFFFFF00>XXX</color> 赶紧去试试吧&#xff01;

备战秋招—模拟版图面试题来了

随着暑期的脚步逐渐临近&#xff0c;电子工程和集成电路设计领域的毕业生们&#xff0c;也将迎来了另一个求职的黄金期——秋招。我们总说机会是留给有准备的人。对于有志于投身于模拟版图设计的学子们来说&#xff0c;为了在众多求职者中脱颖而出&#xff0c;充分备战模拟版图…

C# 工商银行缺少infosecapiLib.infosec

搜索Tlbimp.exe 这里使用4.8.1下的处理&#xff0c;以管理员身份打开powershell cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools".\TlbImp.exe "G:\CSharp\icbc-api-sdk-cop-c#\sdk-cop\sdk-cop\dll\infosecapi.dll" …

PCIe协议之-DLLP详解

✨前言&#xff1a; &#x1f31f;数据链路层的功能 数据链路层将从物理层中获得报文&#xff0c; 并将其传递给事务层&#xff1b; 同时接收事务层的报文&#xff0c; 并将其转发到物理层; 核心的功能有以下三点 1.保证TLP在 PCIe 链路中的正确传递; 2.数据链路层使用了容错…

杀死那个进程

一、场景 eclipse在启动tomcat时&#xff0c;出现端口被占用的情况。我寻思着“任务管理器”没出现相应程序在跑啊。 1.1问题&#xff1a;端口和进程的关系 端口和进程之间存在着一种关系&#xff0c;端口是一个逻辑概念&#xff0c;它用于标识网络通信中的一个终点&#xff0…

SEC突发:以太坊ETF大概率获批

美国证监会大概率批准以太坊现货ETF。 5月20日&#xff0c;据外媒CoinDesk报道&#xff0c;知情人士透露&#xff0c;美国SEC周一要求证券交易所更新以太坊现货ETF的19b-4备案文件。19b-4备案文件是一种表格&#xff0c;用于向SEC通报允许基金在交易所交易的规则变更。 三位消息…

利用cherry pick巧妙地将某次提交单独合并到其他分支

0. 引言 最近在进行系统的多版本并行开发&#xff0c;涉及一些共有基础功能提交时就遇到了麻烦&#xff0c;一份代码需要向多个版本分支进行同步&#xff0c;以保证多版本都能有更新该基础功能。 多次对比提交的方式显然会带来巨大的工作量。但实际上我们可以通过git的cherry…

「Python Socket超能力:网络世界的隐形斗篷!」

Hi&#xff0c;我是阿佑&#xff0c;今天将带领大家揭开Python Socket编程的神秘面纱&#xff0c;赋予我们的网络应用隐形斗篷般的超能力&#xff01; 深入探讨Socket编程的革命性力量&#xff0c;教你如何用Python的Socket模块来构建强大的网络应用。从简单的HTTP服务器到复杂…