QT环境的搭建安装:VsCode及Qt Creator

news2024/9/26 3:24:31

前言:

  vscode的界面美观,并且和QT一样的跨平台,所以可以选择vscode作为开发环境。
  QT5.9.X版本成熟,相应教程丰富,并且5.9.9版本具有生成CMake功能,所以本文以QT5.9.9版本为例,给出QT环境的搭建。
  平时的开发可以在qtcreator中进行界面UI设计布局,在vscode中设计代码和编译、调试。

cmake的安装

1. 双击安装包运行,一直Next到下图,此处为方便选择了安装程序自动添加环境变量

在这里插入图片描述

  安装路径可更换,只需要相应地更改环境变量,本文选择默认路径
在这里插入图片描述

2.安装完成后检查环境变量是否配置正确

在这里插入图片描述
在这里插入图片描述

CMake\bin为所需要的环境变量

3.Win+R 输入cmd,输入cmake -version,显示出CMake的版本号后,CMake安装完成

在这里插入图片描述

Qt Creator安装

1.双击安装包运行,如有账号直接登录,无账号则输入邮箱和新账号密码注册,之后

在这里插入图片描述

2.安装路径可自定义,但后期要把MinGW的路径添加到系统环境变量中

在这里插入图片描述

3.由于本教程配置的环境用于VSCode情况下X86界面程序开发,所以只选择了以下组件

在这里插入图片描述

4.其余步骤按照安装程序默认进行即可,安装完成后根绝自己MinGW安装路径配置环境变量,这个需要自己手动配置

在这里插入图片描述

  (第一行.GCC等编译工具路径 第二行.QT图形界面等库路径)

5.Win+R 输入cmd,输入gcc -v,显示出GCC的版本号后,QT安装完成

在这里插入图片描述

VSCode安装

1.这个比较熟悉了一路next

2.主要是插件,这四个必须要有

在这里插入图片描述

3.F1快捷键打开搜索引擎,输入"QtConfigfigure",选择第一个"QtConfigfigure:Set Qt Dir",然后选择Qt的安装目录即可。

如果弹出下面的提示信息,就说明Qt的安装路径已经设置成功了。
在这里插入图片描述

HelloWorld !QT

VsCode

1.在搜索引擎中输入QtConfigfigure:new project,创建一个测试项目

在这里插入图片描述

输入项目名称:

在这里插入图片描述

选择编译器类型,然后编译运行即可

在这里插入图片描述

选择CMake

在这里插入图片描述

选择带UI

在这里插入图片描述

就会自动生成下列代码

在这里插入图片描述

  其中QApplication a(argc, argv);表示:a应用程序对象,在qt中有且仅有一个
  HelloWorld w;表示窗口对象 HelloWorld父类是Qwidget
  w.show();表示窗口对象,默认是不会显示的,必须调用show才会显示
  return a.exec();表示让应用程序对象进入消息循环,也就是窗口会阻塞等待指令不会一闪而过

Cmake: Select a Kit选择gcc

在这里插入图片描述

然后调试选择QTbuild

在这里插入图片描述

就可以运行啦

在这里插入图片描述

Qt Creator

新建项目

在这里插入图片描述

向导会默认添加一个继承自CMainWindow的类,可以在此修改类的名字和基类。默认的基类有QMainWindow、QWidget以及QDialog三个,我们可以选择QWidget(类似于空窗口),这里我们可以先创建一个不带UI的界面,继续下一步

在这里插入图片描述

选择编译套件

在这里插入图片描述

生成代码

在这里插入图片描述
解释:
  Qt系统提供的标准类名声明头文件没有.h后缀
  Qt一个类对应一个头文件,类名就是头文件名
  QApplication应用程序类
  管理图形用户界面应用程序的控制流和主要设置。
  是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。
  对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。
a.exec()
  程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
  运行结果如下,和VScode一致,只是换了窗口名称
在这里插入图片描述

pro文件

.pro文件
在这里插入图片描述

  在使用Qt向导生成的应用程序.pro文件格式如下:

QT       += core gui  //包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于Qt4版本 才包含widget模块
TARGET = QtFirst  //应用程序名  生成的.exe程序名称
TEMPLATE = app    //模板类型    应用程序模板
SOURCES += main.cpp\   //源文件
        mywidget.cpp
HEADERS  += mywidget.h   //头文件

  .pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:

注释

从“#”开始,到这一行结束。
  模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app
     app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
     lib - 建立一个库的makefile。
     vcapp - 建立一个应用程序的VisualStudio项目文件。
     vclib - 建立一个库的VisualStudio项目文件。
     subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。
  #指定生成的应用程序名:
    TARGET = QtDemo
   #工程中包含的头文件
    HEADERS += include/painter.h
   #工程中包含的.ui设计文件
    FORMS += forms/painter.ui
   #工程中包含的源文件
    SOURCES += sources/main.cpp sources
   #工程中包含的资源文件
    RESOURCES += qrc/painter.qrc
   greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。
   #配置信息
    CONFIG用来告诉qmake关于应用程序的配置信息。
    CONFIG += c++11 //使用c++11的特性
    在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

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

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

相关文章

美团出品 | YOLOv6 v3.0 is coming(性能超越YOLOv7、v8)

🚀🚀🚀美团出品 | YOLOv6 v3.0 is coming !!✨✨✨ 一、前言简介 🎄🎈 📚 代码地址:美团出品 | YOLOv6 3.0代码下载地址 📚 文章地址:https://a…

仿写Dubbo-Java反射

概念 反射是Java的一个特性,反射允许程序运行时动态获取类的所有信息以及对其进行操作。反射在框架(spring,springboot,mybatis等)中的使用非常的广发,可谓是框架的灵魂。 获取Class对象 在使用反射之前,需要获取到Cla…

工欲善其事必先利其器——Elasticsearch安装

安装使用说明 首先在elasticsearch官网下载你想要安装的版本,我这里使用的是7.12.1版本 上传到你想要安装的目录(/user/search/) 然后解压,解压命令如下: tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz 解压后…

创建保存字符串的数组numpy.char以及用于处理字符串数组的函数

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】创建字符串数组numpy.char.array()修改字符串数组大小写capitalize();title();lower();upper()[太阳]选择题对于以下python代码title()方法输出的结果是?imp…

【并发编程十二】c++20线程同步——信号量(semaphore)

【并发编程十二】c20线程同步——信号量(semaphore)一、互斥二、条件变量三、future四、信号量1、信号量原理2、c 20 信号量3、demo简介: 本篇文章,是线程同步的最后一篇。我们详细的介绍下c标准库提供的线程同步方法——信号量&a…

嵌入式Linux-线程创建与终止

1. 线程的创建 1.1 创建线程 启动程序时,创建的进程只是一个单线程的进程,称之为初始线程或主线程,本小节我们讨论如何创建一个新的线程。 创建线程与创建进程的方法是一样的,让我们来看一下创建线程的函数: #incl…

Linux基本功系列之chown命令实战

文章目录一. 前言🚀🚀🚀二. chown命令介绍三. 语法格式及常用选项四. 参考案例3.1 改变指定文件的属组和属主3.2 改变指定文件的所属主与所属组,并显示过程3.3 改变指定目录及其内所有子文件的所属主与所属组3.4 只修改文件所属组…

P问题、NP问题、NP-Complete问题、NP-Hard问题分别代表什么含义?

绪论 在了解P、NP、NP-Complete、NP-Hard问题之前,先感性地感受一下这几个问题之间的区别和联系👇: 上图分为左右两个版本,推荐记住左边的比较通用。这是因为NP=P这个数学问题曾经被列为7大数学难题之一,而且是之首,甚至美国还悬赏100W美金,但是比较认可的结果是暂时…

Python数据可视化之条形图和热力图

Python数据可视化之条形图和热力图 提示:介绍 简单介绍Pthon可视化的图表使用 提示:热力图和条形图 文章目录Python数据可视化之条形图和热力图前言一、导入数据包二、选择数据集2.加载数据2.读入数据总结前言 提示:这里可以添加本文要记录的…

Acwing 1010. 拦截导弹

Acwing 1010. 拦截导弹一、问题描述二、算法分析三、代码实现一、问题描述 二、算法分析 这道题共分为两问,我们先看第一问。 该问的背后是一个很经典的最长单调子序列模型。 在这个模型中,我们的状态f[i]f[i]f[i]的定义是,以第iii个元素为结…

Cert Manager 申请SSL证书流程及相关概念-三

中英文对照表 英文英文 - K8S CRD中文备注certificatesCertificate证书certificates.cert-manager.io/v1certificate issuersIssuer证书颁发者issuers.cert-manager.ioClusterIssuer集群证书颁发者clusterissuers.cert-manager.iocertificate requestCertificateRequest证书申…

50个你离不开的 CLI 工具

作为开发人员,我们在终端上花费了大量时间。有很多有用的 CLI 工具,它们可以让您在命令行中的生活更轻松、更快速,而且通常更有趣。这篇文章概述了我最依赖的 50 个必备 CLI 工具。如果我遗漏了什么 - 请在评论中告诉我 :)在本文的结尾&#…

二叉树专题汇总

二叉树的前中后序遍历day11|144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历_奈川直子的博客-CSDN博客二叉树的层序遍历、翻转二叉树、对称二叉树day12|层序遍历合集、226.翻转二叉树、101.对称二叉树_奈川直子的博客-CSDN博客N叉树最大深度、完全二叉树节点…

LCHub:2023年无代码、低代码8大技术趋势

在数字化转型、新冠疫情、全球经济环境动荡等多因素驱动下,使得组织改变了对低代码、无代码的看法,市场规模和场景化落地实现快速增长。根据Gartner预测,到2025年,70%的应用程序将由低代码和无代码开发平台构建,其中 80%的应用程序由非IT工作者开发而成。 没有编程背景的…

青山不语,碧海无痕,数字山河间的中国脊梁

刚刚过去的2022,对于新农人来说,是不寻常的一年。福建宁德的渔民祖祖辈辈都以外出打鱼为生,渔排生活条件艰苦,娱乐匮乏,销路也不稳定,这种苦闷正随着AI、直播等数字新技术的到来而被消解。青海列卜加村的孙…

Arduino的nodemcu 8266开发板使用MicroPython开发的整体流程

程序安装准备 安装开发板驱动,官网:(https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tabdownloads)这里不是CH340驱动,而是CP210x USB to USART 驱动,最终也是在“设备管理器查看COM口…

【LeetCode:33. 搜索旋转排序数组~~~二分】

题目描述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…

操作系统真相还原_第5章第1节:利用BIOS中断0x15 获取内存信息

文章目录功能号返回信息功能号详解子功能号&#xff1a;0xE820子功能号&#xff1a;0xE801子功能号&#xff1a;0x88内存检测示例当前内存分布说明程序boot.incmbr.sloader.s编译并写入硬盘启动bochs运行功能号 EAX0xE820&#xff1a;遍历主机上全部内存 AX0xE801&#xff1a;…

分享121个ASP源码,总有一款适合您

ASP源码 分享121个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 121个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1wwsIoZidHihm5WHPKjlvMg?pwdew3b 提取码&#x…

如何在linux服务器部署sonar服务?

文章目录前言一、上传sonar插件二、设置sonar插件的权限三、启动插件四、配置环境变量前言 sonar服务是代码质量扫描的工具,我们如何利用sonar进行代码质量扫描还有在linux服务器上部署呢?下面这篇文章详细的记录了我在sonar的使用过程中所遇到的各种坑。 一、上传sonar插件…