Qt 的安装以及项目的创建

news2024/11/15 13:43:55

目录

  • Qt简介
  • Qt 开发环境安装的过程
  • 环境变量的配置
  • Qt SDK 中的重要的工具
  • 创建一个 Qt 项目

Qt简介

开始安装教程前,首先来了解一下什么是QT。

QT(Quick Thought)是一个基于Qt库的快速应用程序开发框架。它提供了一套完整的开发工具和库,可以帮助开发者快速构建高质量的桌面和移动应用程序。支持多种语言像是:C++、Python、Ruby、Perl等等。

Qt 开发环境安装的过程

通常QT开发环境需要安装3个部分:

  1. C++编译器(gcc / cl.exe)
  2. QT SDK (软件开发工具包)
    一般window 版本的 QT SDK内置了C++编译器 mingw,mingw是window版本下的gcc/g++
  3. 需要有一个 QT 的集成开发环境(IDE)
    (1)QT 官方提供的 QT Creator:上手容易开箱即用(适合新手),不需要进行其他额外的配置,但是使用过程中会出现莫名的bug
    (2)Visual Studio:稳定、bug少,但是需要进行多种配置,出现配置错误也会更多
    (3)Eclipse:是一个IDE平台,搭建不同的插件构成不同IDE

上述提到的三个部分中,对新手来说,如果不用繁琐的配置的话,其实只需要安装QT SDK即可,另外两个部分也就安装成功了。

接下来就来到官网中下载QT SDK,点击即可跳转到官方网页中进行下载: Qt SDK下载链接

在这里插入图片描述
在这里我们可以看到很多的版本,一般来说,软件并不是越新的版本就越好。

新的版本会修复旧版本出现的bug,但是也会拓展新的功能,对新版本的功能会不会出现另外的bug这个谁也说不准。面对未知的漏洞,谁也没有踩过的坑,当然还是稳定旧版本比较靠谱,毕竟旧版本所出现的问题我们是知道的。

这里我们选择5.14这个版本

在这里插入图片描述
进去后选择5.14.0
在这里插入图片描述
这里点击下图指示进行安装
在这里插入图片描述
Qt 官网属于国外的网站,众所周知国外的网站访问速度很慢,更不用说是下载东西,尤其是下载这么大的文件。

这里推荐的解决方法是使用魔法进行下载,当然考虑到一些老铁没有魔法,下面附上安装包下载链接:
链接:https://pan.baidu.com/s/1sPunKA9jnIwHp4_dDNLI6Q?pwd=ym7w 提取码:ym7w

下载好的安装包是如下所示:
在这里插入图片描述
双击运行:
在这里插入图片描述

点击Next:

在这里插入图片描述
注册在后续操作会方便许多,当然如果不想注册直接断网,然后点击Next。

在这里插入图片描述
点击下一步
在这里插入图片描述
安装路径没有什么好说的,准备好后点击下一步

在这里插入图片描述
勾选上MinGW,前面提到过这个是C++编译器Window版本下的gcc/g++,借助滚轮往下滑
在这里插入图片描述
勾选如上图所示,接下来一直点击下一步即可完成安装。

环境变量的配置

环境变量是操作系统用来控制程序运行环境的一些参数。它可以用来指定程序在运行时所需的资源、配置和其他参数。

也可以将环境变量理解成就是一种简单的**“进程间通信”**机制

Qt SDK 的bin目录下包含了一大堆动态库和exe文件,需要将该目录加入到Path环境变量中

配置环境变量的作用是:

(1)让操作系统 / Qt Creator工具能够找到 Qt SDK 中提供的 xx.exe文件

(2)运行 Qt 程序时,能够找到对于的 xx.dll 动态库

操作如下:

在Window下的搜索框中搜索环境变量:
在这里插入图片描述
点击编辑系统环境变量:

在这里插入图片描述
点击环境变量

在这里插入图片描述
当前窗口不用关闭,此时我们找到我们刚刚安装Qt程序的目录,找到bin目录。

在这里插入图片描述

在这里小编安装到D盘当中,目录路径如下:D:\QT\5.14.2\mingw73_64\bin 将该路径进行复制。

然后回到环境变量那个窗口,找到系统变量这个位置,找到Path
在这里插入图片描述
双击进入后,将刚刚复制的路径粘贴到新的一行即可
在这里插入图片描述
点击确定,环境变量配置完成。

Qt SDK 中的重要的工具

通过以上的操作,我们将Qt SDK 软件安装包下载并且安装成功。

下面来简单介绍一下关于 Qt SDK中自带的工具程序,方便我们去理解操作这些工具。

打开开始菜单栏,找到Q字母的索引,就可以看到新安装Qt SDK工具的内容了。

在这里插入图片描述

  1. Assistant:Qt 助手,Qt 自带的离线版本的官方文档,方便我们查询某个类使用方法。
  2. Designer:Qt 设计师,图形化的设计界面工具,通过拖拽控件的方式来快速生成界面。(后续经常使用)
  3. Linguist:Qt 语言家,用于创建一个语言配置文件,把界面上需要运用到的各种文字,配置到文件中,并且将文件中提前的把各种语言的翻译都配置进去,实现 “一键式切换语言” 的效果。
  4. Qt Creator:Qt 的集成开发工具(主要的使用工具,代码编写运行都在这里面

创建一个 Qt 项目

  1. 打开Qt Creator
    在这里插入图片描述
  2. 点击文件创建一个新的项目
    在这里插入图片描述
  3. 想要使用Qt写一个GUI的程序,选择 Application 应用程序选项
    在这里插入图片描述

在右侧栏中有很多模板,我们来简单了解一下:

Qt Widgets 是Qt传统的开发GUI的方式 、 Qt Console 是开发控制台程序

在这里插入图片描述

Qt 不仅仅可以使用C++来写还可以使用python或是java等语言进行实现,也就是下面看到的这两个

在这里插入图片描述

Qt Quick 是 Qt 新搞出来的一套用来开发GUI的方式,也就是下面这四个:

在这里插入图片描述

在这里选着第一个Qt Widgets即可。然后进行下一步:

  1. 设置项目名称,还有项目保存的路径
    在这里插入图片描述
    提示:项目创建的路径中不能含有中文字符,否则运行时会报错

设置好后点击下一步

  1. 在这里可以看到三个选项分别是:qmake、CMake、Qbs
    在这里插入图片描述
    简单介绍一下 Build System:构建系统,通过Qt写的程序,涉及一系列的 元编程 技术,通过代码来生成代码。

1. qmake :老牌的 Qt 构建工具
2. CMake:CMake 不是 Qt 专属构建工具,很多开源项目都会使用到CMake
3. Qbs:新一代Qt构建工具,很少人使用,已经没有维护

在这里选择 qmake即可,然后点击下一步

在这里插入图片描述
在使用 Qt Creator 创建项目的时候,会自动生成一些代码,所生成的代码中就包含一个类,也就是 Base class

在这里插入图片描述
在这里就需要手动选择所生成的类是哪种:

1. QMainWindows: 完整的应用程序窗口(包含有 菜单栏, 工具栏, 状态栏…)
2. QWidget : 表示一个控件(窗口上的一个具体元素 输入框, 按钮, 下拉栏, 单选按钮, 复选按钮…)
3. QDialog : 表示一个对话框

创建什么样的项目选择对应的类即可, 在这里举例就选择 QWidget.

注意: Qt中的内置的类都是以Q前缀开头的

在这里插入图片描述
这里生成的文件名字和类名字都是关联的,当然也可以强制性进行修改文件名字,但是推荐名字的一致性,方便后续找对应文件.

接着往下看最后两行的内容:
在这里插入图片描述
Qt 创建图形化界面的程序, 有两种方式:

1. 直接通过C++代码的方式创建界面

2. 通过Form file, 以图形化的方式创建界面

如果我们不勾选 Generate form,那么默认的是通过第一种方式进行创建界面, 勾选了Generate form 就使用第二种方式进行创建.

使用Form file创建图形化界面最大的区别就是, 利用Qt Designer 或者 是通过 Qt Creator 来编辑这个ui文件,从而以图形化的方式快速方便的生成图形界面

在这里推荐大家勾选上,然后点击下一步:

  1. 项目语言翻译设置,选择好对应的语言后点击下一步
    在这里插入图片描述

  2. 在这里安装的时候,只安装了MinGw这个编译器. 不用管直接点击下一步

在这里插入图片描述

如果有多个编译器的话就要选择对应的编译器. 以便Qt SDK 来构建后续代码

在这里插入图片描述
这个页面是提示是否将项目托管到github 或是 gitee上面, 不托管也没关系, 直接选择None即可.

点击完成, 至此 Qt 项目的基本创建也就完成了.

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

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

相关文章

DataX详解和架构介绍

系列文章目录 一、 DataX详解和架构介绍 二、 DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 文章目录 系列文章目录DataX是什么&#xff…

spring boot(2.4.x之前版本)和spring cloud项目中配置文件的作用

为了防止理解问题&#xff0c;pom.xml 版本依赖如下 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!--…

【开源】SpringBoot框架开发城市桥梁道路管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统&#xff0c;支持…

结构体的特殊声明和自引用

结构体的特殊声明 结构体我们通常是这么声明的&#xff1a; struct Student { char name[20]; int age; int num; }; 或者 struct Student { char name[20]; int age; int num; }s1, s2; 这是我们正常的声明方式&#xff0c; 也是正规的声明方式&#xff0c; 第二…

第三百一十一回

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何在输入框中提示错误"相关的内容&#xff0c;本章回中将介绍如何在输入框中处理光标.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在使用TextField组件作为…

【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现

盘点本年度探索对外服务的百万请求量的高可靠消息服务设计实现 前提回顾消息服务逻辑架构运作流程消息路由系统数据存储系统BitCask结构异地存储容灾 推送系统数据消费模式推、拉模式的切换 实现低延时推送快速确认消息三层存储结构HeapMemoryDirectMemory 总结和展望 前提回顾…

【Mybatis】从0学习Mybatis(2)

前言 本篇文章是从0学习Mybatis的第一篇文章&#xff0c;由于篇幅太长CSDN会限流&#xff0c;因此我打算分开两期来写&#xff0c;这是第二期&#xff01;第一期在这儿&#xff1a;【Mybatis】从0学习Mybatis&#xff08;1&#xff09;-CSDN博客 1.什么是ResultMap结果映射&am…

力扣热门100题 - 5.最长回文子串

力扣热门100题 - 5.最长回文子串 题目描述&#xff1a;示例&#xff1a;提示&#xff1a;解题思路&#xff1a;&#xff08;动态规划&#xff09;代码&#xff1a; 题目链接&#xff1a;5. 最长回文子串 题目描述&#xff1a; 给你一个字符串 s&#xff0c;找到 s 中最长的回…

Python爬虫requests库详解

使用 requests 上一节中&#xff0c;我们了解了 urllib 的基本用法&#xff0c;但是其中确实有不方便的地方&#xff0c;比如处理网页验证和 Cookies 时&#xff0c;需要写 Opener 和 Handler 来处理。为了更加方便地实现这些操作&#xff0c;就有了更为强大的库 requests&…

「HarmonyOS」CustomDialogController自定义弹窗使用方法

需求背景&#xff1a; 在开发的过程中&#xff0c;总会遇到一些功能需要使用到弹窗进行信息的输入和修改&#xff0c;如用户个人信息的修改&#xff1b;在UI设计上每个App通常都会有各自的样式&#xff0c;而不是使用系统的标准样式&#xff0c;所以通常我们需要进行自定义弹窗…

TryHackMe-Net Sec Challenge练习

本文相关的TryHackMe实验房间链接&#xff1a;TryHackMe | Why Subscribe nmap nmap -T5 -p- 10.10.90.32 -T5 扫描速度 -p- 全端口扫描 答题&#xff1a; 这题叫我们找藏在http服务下的flag&#xff0c;根据上面扫出来的端口&#xff0c;所以我们开始搞80 这里简单介绍一下…

2.6 假期作业

分布编译 -ESc iso 1.预处理:头文件展开&#xff0c;宏替换&#xff0c;删除注释&#xff0c;不会查找语法错误 例&#xff1a;gcc -E 1.c -o 1.i 2.编译&#xff1a;生成汇编文件&#xff0c;会查找语法错误 例&#xff1a;gcc -S 1.i -o 1.s 3.汇编&#xff1a;生成二…

亚马逊认证考试系列 - 知识点 - LightSail介绍

一、引言 在当今云计算的时代&#xff0c;亚马逊网络服务&#xff08;AWS&#xff09;已成为业界领先的云服务提供商。其中&#xff0c;LightSail服务是AWS为简化云计算的入门和使用而推出的一项服务。它特别适合那些想要快速搭建网站、开发环境或小型应用的用户。通过LightSa…

代码随想录算法训练营第二八天 | 分割 子集

目录 复原IP地址子集子集 II LeetCode 93.复原IP地址 LeetCode 78.子集 LeetCode 90.子集II 复原IP地址 一些字符串的基本操作不会 s.insert(i 1, ‘.’); s.deleteCharAt(i 1); class Solution {List<String> result new ArrayList<>();public List<St…

EMC测试介绍

EMC测试介绍 EMC包括电磁干扰(EMI) 和抗电磁干扰(EMS)两个部分。发射干扰传导发射测试极限线以峰值检坡器测量时使用的决策树应用EN55022标准的波形示例测试仪器![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4580f693ae9a4f84891ece29681c7bf2.png) 辐射发射测试…

【Iceberg学习二】Branch和Tag在Iceberg中的应用

Iceberg 表元数据保持一个快照日志&#xff0c;记录了对表所做的更改。快照在 Iceberg 中至关重要&#xff0c;因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本&#xff0c;Iceberg 提供了快照生命周期管理程序&#xff0c;如 expire_snapshots&#xf…

c语言--指针的传值调用和传址调用

目录 一、前言二、传值调用。三、传址调用四、总结 一、前言 学习指针的目的是使用指针解决问题&#xff0c;那什么问题&#xff0c;非指针不可呢&#xff1f; 二、传值调用。 写个函数&#xff0c;交换两个整数的内容。 #include<stdio.h> void Swap1(int x, int y)…

【halcon】write_image 图片保存

前言 write_image 是一个可以用来保存图片的算子&#xff0c;可以将Image对象保存成各种格式的图片。还可以对图片进行压缩。 正文 参数&#xff1a; Image&#xff08;输入对象&#xff09;&#xff1a; 输入图像或输入图像的数组。支持的像素类型包括byte、direction、cy…

opencv c++ (6):直方图

1. 绘制直方图 api不在做详细介绍&#xff0c;具体看以下代码例子 #include <iostream> #include<opencv.hpp> #include<opencv2\highgui\highgui.hpp>using namespace std; using namespace cv;int main() {Mat src imread("src.jpg");if (src…

Qt 常见容器类用法(二)

目录 QList类 QLinkedList类 QList类 对于不同的数据类型&#xff0c;QList<T>采取不同的存储策略&#xff0c;存储策略如下&#xff1a; 如果T是一个指针类型或指针大小的基本数据类型(该基本类型占有的字节数和指针类型占有的字节数相同)&#xff0c;QList<T>…