记录Qt和opencv 新环境配置过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Qt是什么?
  • 二、Qt的版本
  • 三、安装步骤
    • 1.下载Qt
    • 2.双击安装包.exe开始安装
    • 3. 需要登陆才能继续安装,没有的就用邮箱注册账号
    • 4.注意安装路径不能有中文
    • 5. 安装资源选择,根据自己的需求来选
    • 6.同意许可,继续安装
    • 7. 安装完成
  • 四、测试是否能用
    • 1.新建工程
    • 2.opencv环境
    • 3.配置工程
    • 4.测试opencv
    • 5.注意事项
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

为外出干项目做一些环境准备工作,需要重新配置电脑环境,那首先装的肯定就是Qt了,以前安装都没做记录,这次就记录一下吧,希望对大家有用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Qt是什么?

Qt 是一个跨平台的 C++ 应用程序框架,主要用于开发 GUI 应用程序。它提供了一套完整的开发工具,包括一个完整的 GUI 设计工具,以及各种用于开发网络应用程序、数据库应用程序等的工具。Qt 提供了一种易于使用的 API,可以帮助开发者快速地构建复杂的应用程序。它还支持多种操作系统,包括 Windows、Linux、Mac OS 等。

Qt的优点包括:

  1. 跨平台:Qt可以在多种操作系统上运行,无需对源代码进行修改,真正实现了“一次编写,到处运行”。
  2. 强大的GUI设计工具:Qt提供了一套完整的GUI设计工具,使得开发者可以轻松地创建漂亮、易于使用的界面。
  3. 丰富的API:Qt提供了大量的类和函数,涵盖了GUI、网络、数据库、多线程等各个方面,使开发者能够快速地开发出复杂的应用程序。
  4. 支持多种语言:Qt不仅支持C++,还支持Python、Java等多种语言,使得开发者的选择更加多样。
  5. 活跃的社区:Qt有一个庞大的开发者社区,为Qt开发者提供了丰富的资源和支持。

然而,Qt也存在一些缺点:

  1. 学习曲线较陡峭:Qt虽然功能强大,但对于初学者来说,可能需要一段时间来熟悉。特别是对于没有C++基础的开发者来说,学习曲线可能会更长。
  2. 体积较大:由于Qt的功能丰富,其库的体积也相对较大,可能会导致应用程序的体积增大。
  3. 依赖性较强:Qt的应用程序依赖于Qt的库,如果要在没有安装Qt库的计算机上运行应用程序,需要将Qt的库一起打包。
  4. 性能问题:在某些情况下,使用Qt可能会导致应用程序的性能下降。这可能是因为Qt的事件循环和处理方式导致的。

总的来说,Qt的优点和缺点是相对的,需要根据具体的应用场景来评估是否使用Qt。

二、Qt的版本

Qt的版本分为多个系列,其中最常用的是Qt 5系列。Qt 5是一个相对较新的版本,相对于Qt 4来说,它增加了一些新的特性和改进,包括更好的性能和更现代化的界面。Qt 5系列中的每个版本都经过了精心设计和优化,以满足不同用户的需求。

此外,Qt还提供了一些其他的版本,如Qt for Device Creation和Qt for MCUs。这些版本是专门针对特定的设备或微控制器而设计的,提供了许多硬件相关的特性和工具。

总体而言,Qt的版本选择取决于具体的应用需求和开发环境。开发者应该根据项目的需求和目标选择最适合的版本。

最新的Q6.5
请查看官网更新:

https://www.qt.io/zh-cn/

三、安装步骤

1.下载Qt

可以在官网上下载
可以在百度网盘上下载,有空放一个链接在这里

目前放在移动硬盘上

在这里插入图片描述

2.双击安装包.exe开始安装

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

3. 需要登陆才能继续安装,没有的就用邮箱注册账号

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

注册后登录成功画面
在这里插入图片描述

在这里插入图片描述

4.注意安装路径不能有中文

在这里插入图片描述

5. 安装资源选择,根据自己的需求来选

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

6.同意许可,继续安装

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

7. 安装完成

安装时间根据电脑性能来决定,慢慢等吧,装了大概30分钟,点击下一步
zhzh
在这里插入图片描述

四、测试是否能用

在这里插入图片描述

1.新建工程

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

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

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


2.opencv环境

  1. 直接拷贝之前编译好的过来使用
    在这里插入图片描述
    2.添加环境变量

在这里插入图片描述
C:\opencv-4.5.0\install\install\x64\mingw\bin

在这里插入图片描述

3.配置工程

在这里插入图片描述

INCLUDEPATH += c:\opencv-4.5.0\install\install\include
DEPENDPATH +=c:\opencv-4.5.0\install\install\includeLIBS += c:\opencv-4.5.0\install\lib\libopencv_*.a

4.测试opencv

好的,下面是一个使用 Qt 和 OpenCV 的简单示例,该示例加载一个图像文件并显示在窗口中:

#include <QApplication>
#include <QLabel>
#include <opencv2/opencv.hpp>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 加载图像文件cv::Mat image = cv::imread("example.jpg");// 创建 QLabel 对象并设置图像QLabel label;cv::cvtColor(image, image, cv::COLOR_BGR2RGB); // 将 OpenCV 的 BGR 格式转换为 Qt 的 RGB 格式QImage qimage = QImage((const unsigned char*)(image.data), image.cols, image.rows, image.step, QImage::Format_RGB888);label.setPixmap(QPixmap::fromImage(qimage));// 显示窗口label.show();return app.exec();
}

这个示例中,我们首先使用 QApplication 对象创建了一个 Qt 应用程序。然后,我们使用 OpenCV 的 imread 函数加载一个图像文件,并将其存储在 cv::Mat 对象中。接下来,我们创建一个 QLabel 对象,并使用 cv::cvtColor 函数将图像从 OpenCV 的 BGR 格式转换为 Qt 的 RGB 格式。最后,我们将 QImage 对象转换为 QPixmap 对象,并将其设置为 QLabel 的 pixmap,然后显示 QLabel 窗口。

5.注意事项

添加了环境变量后,电脑要重启
否则程序编译没问题,但是会停止运行

最后成功显示

在这里插入图片描述

总结

不知不觉又忙了一晚上,充实并快乐着,继续加油!2024.1.16

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

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

相关文章

Message queue 消息队列--RabbitMQ 【基础入门】

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Message queue 消息队列--RabbitMQ 【基础入门…

Docker进阶篇-安装MySQL主从复制

一、MySQL主服务器 1、新建主服务器容器实例3307 docker run -p 3307:3306 \--name mysql-master \--privilegedtrue \-v /mydata/mysql-master/log:/var/log/mysql \-v /mydata/mysql-master/data:/var/lib/mysql \-v /mydata/mysql-master/conf:/etc/mysql \-e MYSQL_ROOT_…

Linux编辑器---vim

目录 1、vim的基本概念 2正常/普通/命令模式(Normal mode) 2、1命令模式下一些命令&#xff08;不用进入插入模式&#xff09; 3插入模式(Insert mode) 4末行/底行模式(last line mode) 4、1底行模式下的一些命令 5、普通用户无法进行sudo提权的解决方案 6、vim配置问题 6、1配…

基于 Redis 实现高性能、低延迟的延时消息的方案演进

1、前言 随着互联网的发展&#xff0c;越来越多的业务场景需要使用延迟队列。比如: 任务调度:延时队列可以用于任务调度&#xff0c;将需要在未来某个特定时刻执行的任务放入队列中。消息延迟处理: 延时队列可以用于消息系统&#xff0c;其中一些消息需要在一段时间后才能被消…

RK3568平台 HDMI交换机芯片PI3HDX231

一.简介 HDMI交换机芯片是一款可以同时输入几路HDMI的芯片&#xff0c;通过设计交换机芯片的寄存器值&#xff0c;已选择 其中一路作为输出。 I3HDX231是3:1 HDMI线性ReDriver交换机&#xff0c;支持每通道6 Gbps的数据速率&#xff0c;4096 x 2160像素分辨率&#xff0c;彩色…

Python项目——搞怪小程序

1、介绍 使用python编写一个小程序&#xff0c;回答你是猪吗。 点击“是”提交&#xff0c;弹窗并退出。 点击“不是”提交&#xff0c;等待5秒&#xff0c;重新选择。 并且隐藏了关闭按钮。 2、实现 新建一个项目。 2.1、设计UI 使用Qt designer设计一个UI界面&#xff0c…

深入解析JavaScript中箭头函数的用法

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 箭头函数(Arrow function)是JavaScript ES6中引入的一大特性。箭头函…

739.每日温度 496.下一个更大元素 I

739.每日温度 496.下一个更大元素 I 739.每日温度 力扣题目链接(opens new window) 请根据每日 气温 列表&#xff0c;重新生成一个列表。对应位置的输出为&#xff1a;要想观测到更高的气温&#xff0c;至少需要等待的天数。如果气温在这之后都不会升高&#xff0c;请在该位…

Android Matrix绘制PaintDrawable设置BitmapShader,手指触点为圆心scale放大原图,Kotlin(二)

Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin&#xff08;二&#xff09; 在 Android Matrix绘制PaintDrawable设置BitmapShader&#xff0c;手指触点为圆心scale放大原图&#xff0c;Kotlin-CSDN博客 基础上&…

操作系统——进程管理篇

操作系统——进程管理篇&#xff08;王道23年版&#xff09; 2.1_1_进程的概念、组成、特征 1.进程的概念 程序&#xff1a;是静态的&#xff0c;就是个存放在磁盘里的可执行文件&#xff0c;就是一系列的指令集合 进程&#xff1a;是动态的&#xff0c;是程序的一次执行过…

使用 Swift 代码优化项目编译速度

引言 软件的性能是评价一个软件质量的重要指标&#xff0c;尤其在今天这个时代&#xff0c;性能已成为大型项目不可或缺的考虑因素之一。对于用户量极大的软件&#xff0c;如网银系统、在线购物商城等&#xff0c;更是必须保证其高效稳定的性能。在这种背景下&#xff0c;优化…

学习笔记应用——创建用户账户并且拥有自己的信息

一、创建用户账户 将建立一个用户注册和身份验证系统&#xff0c;让用户能够注册账户&#xff0c;进而登录和注销。我们将创建一个新的应用程序&#xff0c;其中包含与处理用户账户相关的所有功能。 创建user 我们首先使用命令 startapp 来创建一个名为 users 的应用程序&…

大语言模型无代码构建知识图谱概述

2023年3月15日&#xff0c;ChatGPT4.0的横空出世&#xff0c;将人们对大语言模型的关注推到了风口浪尖。由于其在智能问答、翻译以及文本生成等工作任务上的卓越表现&#xff0c;业界一度出现了不再需要发展知识图谱相关技术的观点&#xff0c;知识图谱相关概念严重受挫。无可置…

如何有效防爬虫?一文讲解反爬虫策略

企业拥抱数字化技术的过程中&#xff0c;网络犯罪分子的“战术”也更难以觉察&#xff0c;并且这些攻击越来越自动化和复杂&#xff0c;也更加难以觉察。在众多攻击手段中&#xff0c;网络爬虫是企业面临的主要安全挑战。恶意爬虫活动可能导致数据滥用、盗窃商业机密等问题&…

Spring Cloud可视化智慧工地大数据云平台源码(人、机、料、法、环五大维度)

智慧工地平台是依托物联网、互联网、AI、可视化建立的大数据管理平台&#xff0c;是一种全新的管理模式&#xff0c;能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三…

5、交叉验证

交叉验证 在本教程中,您将学习如何使用交叉验证来更好地衡量模型的性能。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 文章目录 1、简介2、什么是交叉验证3、什么时候应该使用交叉验证?4、举例1)加载数据集2)创建管道3)获取MAE…

【轮式平衡机器人】——软硬件配置/准备

本系列以轮式平衡移动机器人为例&#xff0c;将使用基于模型设计&#xff08;MBD&#xff09;方法进行介绍&#xff0c;涉及基础硬件、软件、控制算法等多方面内容&#xff0c;结合MATLAB/Simulink的强大仿真能力和代码生成能力辅助设计&#xff01;在此过程中可以系统了解开发…

禅道下载安装

文章目录 一、禅道官网二、安装三、管理员操作四、产品操作五、项目经理操作六、测试操作七、泳道图 一、禅道官网 官网&#xff1a;http://www.zentao.net/ 自己用的话是&#xff1a;开源版 然后一直往下滑&#xff0c;找到windows,此处是最新版本 二、安装 本作者就用以前…

【好文翻译】JavaScript 中的 realm 是什么?

本文由体验技术团队黄琦同学翻译。 原文链接&#xff1a; https://weizmangal.com/2022/10/28/what-is-a-realm-in-js/ github仓库地址&#xff1a; https://github.com/weizman/weizman.github.io/blob/gh-pages/_posts/2020-02-02-what-is-a-realm-in-js.md 前言 作为我对…

力扣36. 有效的数独

模拟 思路&#xff1a; 使用三个哈希表来存储数字个数 row[r][val] 用于存储第 r 行 val 1 的个数&#xff1b;column[c][val] 用于存储第 c 列 val 1 的个数&#xff1b; subboxes[i][j][val] 用于存储第 i 行、第 j 列个小九宫格 val 1 的个数&#xff0c;其中&#xff1…