【Qt】如何搭建Qt开发环境

Qt的开发工具

需要搭建Qt开发环境,需要安装3个部分:

  1. C++编译器(gcc、cl.exe...)注意,这里的C++编译器不是指visual studio这种集成开发环境,编译器不等于IDE,编译器只是IDE调用的一个程序。
  2. Qt SDK。SDK被称为软件开发工具包,就比如,Windows版本的Qt SDK里面已经内置了C++的编译器,其内置的编译器是mingw,mingw是Windows版本的gcc/g++,在具体安装的过程中,需要把对应的C++编译器勾选上。如果想要VS内置的cl.exe作为编译器,需要配置很多额外的东西,容易出错。
  3. 需要有一个Qt的集成开发环境(IDE)。

Qt支持多种开发工具,其中比较常用的开发工具有:Qt Creator、visual Studio、Eclipse。

Qt Creator

        Qt Creator 是⼀个轻量级的跨平台集成开发环境(IDE),专为使⽤ Qt 框架进⾏应⽤程序开发⽽设计。它是⼀个功能强⼤、易于使⽤、快速且⾼效的⼯具,被⼴泛⽤于编写各种类型的应⽤程序,如桌⾯应⽤程序、移动应⽤程序和嵌⼊式系统等。
        Qt Creator 提供了⼀个可视化的界⾯设计器和代码编辑器,可以帮助开发者更快捷地创建复杂的⽤⼾界⾯和处理各种事件。它还包含了调试⼯具、版本控制⼯具、⾃动完成和智能提⽰等功能,以及⽀持多语⾔和跨平台的开发环境。
Qt Creator的主要特定是:
  • 紧密集成的 Qt 框架:Qt Creator 专⻔为 Qt 开发⽽设计,因此它与 Qt 框架集成得⾮常紧密,使开发者可以更容易地管理和部署他们的应⽤程序。
  • 强⼤的编辑器:Qt Creator 具有⼀些先进的编辑器功能,如语法⾼亮、代码折叠、智能提⽰、⾃动完成和代码重构。
  • 集成的调试器:Qt Creator 内置了调试器,允许开发⼈员在代码中设置断点以及检查变量、堆栈和调⽤树等信息。
  • ⾼效的构建系统:Qt Creator 提供了⼀个⾼效的构建系统,可以⾃动构建和部署应⽤程序,同时⽀持使⽤不同的编译器和平台。
  • 可视化界⾯设计器:Qt Creator 具有⼀个可视化界⾯设计器,它允许开发⼈员在没有编写代码的情况下创建复杂的⽤⼾界⾯。
  • 多语⾔⽀持:Qt Creator ⽀持多种编程语⾔,包括 C++、QML、JavaScript 等。
        Qt Creator 是⼀个功能⻬全、易于使⽤且⾼效的跨平台 IDE,适⽤于各种类型的应⽤程序开
发,特别是那些使⽤ Qt 框架的开发者。

        总之,Qt Creator是Qt官方提供的,是最容易入门,最容易上手的的一种方式,不需要额外的配置,虽然Qt Creator在使用过程中存在不少bug,有些bug非常影响使用体验,但是整体来说,用起来还是比较方便的,比较适合初学者。

Visual Studio

        Visual Studio 是由微软公司开发的集成开发环境(IDE)。它可以⽤来开发多种类型的应⽤程序。包括Windows 桌⾯应⽤程序、Web应⽤程序、移动应⽤程序、游戏等。Visual Studio 提供了丰富的开发⼯具和功能,包括代码编辑器、调试器、⾃动完成、代码重构、版本控制等等。它⽀持多种编程语⾔,如:C++、C#、Visual Basic、F#、Python等。Visual Studio 还可以与其他开发⼯具和服务集成,如Azure 云服务、GitHub、Jenkins等。
Visual Studio的主要特点:
  • 多语⾔⽀持:Visual Studio ⽀持多种编程语⾔,包括 C++、C#、Visual Basic、F#、Python、JavaScript 等。
  • 丰富的⼯具集:VS 提供了各种开发⼯具,包括代码编辑器、调试器、代码分析⼯具等,以提⾼开发⼈员的效率。
  • 可视化设计:VS提供了可视化的设计⼯具,如窗体设计器、WPF 设计器等,使开发⼈员可以直观地设计⽤⼾界⾯。
  • 跨平台开发:VS ⽀持跨平台开发,可以开发适⽤于 Windows、Linux 和 macOS 等多个平台的应⽤程序。
  • 集成的调试器:VS 集成了强⼤的调试器,可以进⾏代码的单步调试、断点调试等操作来帮助开发⼈员查找和修复错误。
  • 丰富的扩展性:VS 可以通过安装扩展来扩展其功能,开发⼈员可以根据⾃⼰的需求选择并安装适合的扩展。

        Visual Studio 这个集成开发环境是比较优秀,功能更强的,但是额外配置很多,而且更加容易出错。有些公司开发商业Qt程序的时候,可以使用VS,在使用vs的过程中,需要给vs安装插件,并且需要把Qt SDK使用VS的编译器重新编译,对于现在的VS而言,有预编译好的版本,也比较方便。

Eclipse

        Eclipse 是著名的跨平台的⾃由集成开发环境(IDE)。最初主要⽤来 Java 语⾔开发,但是⽬前亦有⼈通过插件使其作为其他计算机语⾔⽐如 C++ 和 Python 的开发⼯具。Eclipse 的本⾝只是⼀个框架平台,但是众多插件的⽀持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发⾃⼰的 IDE。Qt 框架可以与 Eclipse 集成,使开发者可以使⽤ Eclipse 的强⼤功能来开发 Qt 应⽤程序。
        Eclipse并非只是Java IDE,本身是一个IDE平台,可以搭配不同的插件,构成不同的IDE,但是受到市场的冲击(重量级工具有JetBrains,轻量级工具有VScode),Eclipse的生态已经是大不如前了。
所以,综合来讲,简简单单安装个Qt SDK就ok了。

Qt的安装与下载

Qt的下载官网:https://download.qt.io/archive/qt/

本人使用的是:Qt 5.14.2

了解Qt SDK工具

在安装Qt SDK完成之后,可以在菜单栏里面找到Qt SDK自带的一些工具程序,这些工具程序也是我们在开发过程中需要关注的。

  • Qt助手,是Qt自带的离线版本的官方文档(英文版本),虽然Qt也存在盗版的中文文档,但是建议使用英文文档进行学习。

  • Qt 设计师,这是图形化设计界面的工具,通过拖拽控件的方式来快速生成界面,一般会搭配Qt Creator来使用。

  • Qt 语言家,其作用是对国际化进行支持,将写的程序与国际接轨,其允许单独创建一个语言配置文件,将界面上需要用到的各种文字都配置到文件中,并且在文件中提取把各种语言的翻译都配置进去。可以起到“一键式切换语言”效果,通过简单的api就可以切换语言配置,很容易实现兼容不同uoj的地区效果。

  • 命令行操作

  • Qt Creator

 

使用Qt SDK创建项目 

 新建一个项目

 application里有应用程序,如果需要使用Qt写一个GUI程序,就需要选择这个就够了。

  • Qt Widgets Application:图形化界面
  • Qt Console Application:命令行界面
  • Qt for python与Qt for Python:Qt不仅仅支持C++,也支持python语言,同时也支持Java。
  • Qt Quick:是Qt的最新的用来开发GUI的方式,传统的开发GUI的方式是Qt Widgets

设置路径并命名项目。

 Build system,用来构建系统,通过Qt写的程序,涉及到一系列的“元编程”技术,也就是通过代码来生成代码的。

        Qt这个框架,会在编译的时候,自动先调用一系列的生成工具,基于我们自己写的代码,生成一系列的其他C++代码,最终编译的代码,也就形成了最后生成的这些代码。

  • Qmake:是老牌的Qt构建工具
  • CMake:并非Qt专属,很多开源项目都会使用CMake
  • Qbg:新一代的Qt构建工具(在实际中使用比较少)

 Class Information:使用Qt creator创建项目,会自动的生成一些代码出来,生成代码就包含一个类,此处就是需要选择这个自动生成类的父类。

Qt中内置的类都是以Q开头的。

下面的.h与.cpp文件是指此处生成的文件名是和类名关联的,但是这样的关联并非是强制的,这里推荐大家一致。

这里的form file非常关键,在Qt中创建图形化界面的程序有俩种方式:

  1. 直接通过C++代码的方式创建界面
  2. 通过form file,以图形化的方式来生成界面。

此时,就可以使用Qt Designer或者直接使用Qt Creator来编辑这个ui文件,从而以图形化的方式快速方便的生成图形界面。

  • QMainWindow:是完整的应用程序窗口,可以包含菜单栏、工具栏、状态栏...
  • QWidge:表示一个控件(窗口上的一个具体的元素,输入框、按钮、下拉框、单选按钮、复选按钮...) 
  • QDialog:表示一个对话框

 Translation File:选择翻译文件对应的语言,此处暂时不需要处理,和国际化相关的。

Kit selection:这里选择一些基于哪一个编译器的Qt SDK来创建后续代码的。 

新建一个项目完成

点击左下角的三角是运行按钮。

直接点击绿色三角会出现一个框。 

Qt环境变量配置

  • 找到Qt的安装的路径,复制“bin”路径。

  • 在搜索面板中搜索“环境变量”

  •  双击path

  • 点击新建,将复制的路径保存并且确定。 

【注意】在关闭所有窗口时,一定需要点击“确定”,否则上述配置无效。

为什么要设置环境变量? 

        答:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序将要用到的信息。

在Windows上设置Qt的环境变量是为了能够在命令行或者其他应用程序中直接访问Qt相关的命令和工具。 

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

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

相关文章

将本地的业务写成成可供RPC远程调用的方法

第一步:首先我们先定义proto文件,这些proto文件将会为远程调用者提供调用的方法,为login方法。 2.重写UserServiceRpc类中的Login方法。 在Login中做的操作主要是,得到requst里面的参数,然后调用本地的Login方法&#…

SQL注入 报错注入、文件上传、布尔盲注、时间盲注

第7关 文件上传 ---面试官常问 1、MySQL上传shell的满足条件 如果面试官问你如何通过MySQL向网站上传一个shell脚本或者其他语言的一些脚本 ---就可以通过outfile导出的方式进行上传; outfile导出的前提条件:1、必须知道网站的物理路径&#xf…

网络编程相关

关于ipv4和v6 ipv4小细节-------公网和私有地址 端口 InetAddress 协议 UDP、TCP UDP通信程序 发送(单播): 接收(单播): UDP三种通信方式 单播和广播代码几乎相同,就是将: InetAddr…

【JVM基础11】——垃圾回收-说一下JVM的分代回收?

目录 1- 引言:分代回收1-1 什么是分代回收(What)1-2 为什么要用分代回收?(Why) 2- ⭐核心:分代回收工作机制2-1 工作机制2-2 MinorGC、Mixed GC、FullGC的区别是什么 3- 总结3-1 说一下 JVM 的分…

如何利用 ChatGPT 提高工作效率?

内容创作与总结: 写作辅助:可以帮助撰写文章、报告、邮件等各种文本,如为招商银行写宣传文案、写论文、写故事等。学习材料生成:能够生成学习材料,如摘要、抽认卡和测验,帮助学生复习和学习课程。评估和考核…

【Material-UI】深入理解useAutocomplete Hook:自定义与高级用法

文章目录 一、什么是useAutocomplete?导入useAutocomplete 二、基本用法代码解析 三、高级定制1. 自定义选项渲染2. 分组和排序3. 自定义输入框行为4. 与其他组件集成 四、注意事项1. 类型安全2. 性能优化 五、总结 Material-UI提供了强大的Autocomplete组件&#x…

Android 本地化、多语言切换:Localization

目录 1)如何实现多语言切换、如何实现跟随手机语言切换而切换app语言 2)Localization是什么 3)不管手机语言如何,根据用户在App选择的语言,只切换App语言 4)文字长短不一样,怎么办呢? 一、Lo…

Java面试之操作系统

1、冯诺依曼模型 运算器、控制器、存储器、输入设备、输出设备 32位和64位CPU最主要区别是一次性能计算多少字节数据,如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下&#…

我花了一天时间,搭了个专属知识库,部署上线了,手把手教,不信你学不会

自动开了这个号以后,陆陆续续写了很多干货文章,一方面是可以帮助自己梳理思路,另一方面也方便日后查找相关内容。 但是,我想检索某个关键词是在之前哪篇文章写过的,就有点捉急了。CSDN 还好,可以检索到相关…

魔塔社区程序的`datasets.utils`导入`_datasets_server`错误问题的解决办法

运行魔塔社区的的一个识别图像文件中文字的模型程序: 出现如下的错误提示: from datasets.utils import _datasets_server,file_utils ImportError: cannot import name _datasets_server from datasets.utils (D:\PycharmProjects\minicpm_cuda_test\ve…

【保姆级讲解C语言中的运算符的优先级!】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Java-文件操作和IO

文件介绍 文件本身有多重含义,狭义的文件,特指硬盘上的文件(以及保存文件的目录),广义的文件:计算机上的很多硬件设备,软件资源,在操作系统中,都会被视为是"文件" 文件除了有数据内容之外,还有一部分信息,例如文件名,文件类型,文件大小,这些信息可以称作文件的元信…

【Android】通知的使用

使用通知 通知(notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中…

YOLO:VOC格式数据集转换为YOLO数据集格式

作者:CSDN _养乐多_ 本文将介绍如何将目标检测中常用的VOC格式数据集转换为YOLO数据集,并进行数据集比例划分,从而方便的进行YOLO目标检测。 文章目录 一、将VOC格式数据集转换为YOLO格式数据集二、YOLO格式数据集划分(训练、验…

FreeRTOS中的动态内存管理(heap_1、heap_2、heap_3、heap_4)

FreeRTOS 提供了多种动态内存分配方案,这些方案通过不同的内存管理器(heap managers)实现,主要位于 FreeRTOS/Source/portable/MemMang 目录下。以下是几种常见的动态内存分配方案: heap_1 特点: 简单性…

电脑添加虚拟网卡与ensp互联,互访

一、按照过程 1、打开设备管理器 2、点击网络适配器,点击左上角操作,点击“添加过时硬件” 3、下一页 4、选择“安装我手动从列表选择的硬件”,下一页 5、下拉,选择“网络适配器”,下一页 6、厂商选择“Microsoft”&…

内网穿透--LCX+portmap转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网,然后由于私网IP的缘故,公网 无法直接访问内部web服务器主机,通过内网其它主机做代理,穿透访问内网web 服务器主机 实验设备 1. 路由器、交换机各一台 2. 外网 kali 一台&…

设计测试用例的具体方法

一.等价类 等价类分为: 1.有效等价类 [6~15] 2.无效等价类 :小于6位,大于15位(不在数据范围内) 组合规则: 有效等价类组合的时候,尽可能一条测试用例尽可能多的覆盖有效等价类 无效等价类组合的时候,一条测试点,之恶能覆盖一个无效等价类 二.边界值 1.上点,离点,内点 上…

Shader入门精要总结(二)矩阵

1. 矩阵乘法 一个rn的矩阵A和一个nc的矩阵B相乘,它们的结果AB将会是一个rc大小的矩阵,不满足此规则不能相乘 矩阵乘法满足一些性质 矩阵乘法不满足交换律 即AB≠BA矩阵乘法满足结合律 (AB)CA(BC) 2. 特殊矩阵 方块矩阵 指行和列数目相等的矩阵&#x…

谷粒商城实战笔记-103~104-全文检索-ElasticSearch-Docker安装ES和Kibana

文章目录 一,103-全文检索-ElasticSearch-Docker安装ES1,下载镜像文件2,Elasticsearch安装3,验证 二,104-全文检索-ElasticSearch-Docker安装Kibana1,下载镜像文件2,kibana的安装3,验…