【Qt】:概述(下载安装、认识 QT Creator)

🌈 个人主页:Zfox_
🔥 系列专栏:Qt

目录
- 一:🔥 介绍
- 🦋 什么是 QT
- 🦋 QT 发展史
- 🦋 Qt版本
- 🦋 QT 优点
- 一:🔥 搭建Qt开发环境
- 🦋 QT 开发工具
- 🦋 QtSDK的下载
- 🦋 QtSDK的安装
- 🦋 环境变量配置
- 🦋 认识 SDK 的重要工具
- 三:🔥 认识QtCreator
- 🦋 QtCreator概览
- 🦋 使用 QT Creator 创建项目
- 新建项目
- 选择项⽬模板
- 选择项目路径
- 选择构建工具
- 填写类信息设置界面
- 选择语言和翻译软件
- 选择 Qt 套件
- 选择版本控制系统
- 最终效果演示
- 🦋 认识QtCreator界⾯
- 左边栏
- 代码编辑区
- UI 设计页面
- 🦋 3.4 项目代码解析
- widget.h
- main.cpp
- widget.cpp
- widget.ui
- .pro 工程文件
- Qt 可选模块如下
- 🦋 中间文件
- 四:🔥 共勉
一:🔥 介绍
🦋 什么是 QT
🔥 QT 是一个 跨平台的 C++ 图形用户界面应用程序框架
。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展。QT 为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用 C++ 语言进行高级开发。
🧑💻 所谓 框架 其实是一个 “半成品”,帮助项目搭建 “骨架”,并提供丰富的组件库,开发人员只需增加一些内容或调用一些提供好的组件就可以完成系统。
🧑💻 框架 和 库 其实优点相似的,都是由大佬提前写好的,让我们去使用的,但是本质上还是有区别的。库是被程序员调用的,主体是程序员,但是框架的主体是框架本身,是程序员配合框架完善,填充框架留下的一些细节。
🦋 QT 发展史
- 1991 年 QT 最早由芬兰奇趣科技开发
- 1996 年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
- 2008 年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程基础
- 2012年 QT 又被Digia公司(芬兰一家软件公司)收购
- 2014 年 4 月 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5月20日配发了 Qt5.3 正式版,至此 Qt 实现了对 iOS、Android、WP 等各平台的全面支持。
🦋 Qt版本
🧑💻 ⽬前最新的版本是Qt6.但是相对来说Qt6和Qt5之间的核⼼功能区别不⼤.并且企业中也仍然有⼤量的项⽬在使⽤Qt5.(Qt6目前的bug相当多 Qt 5.15和 Qt5.14 基本就是最稳定的版本了)
🦋 QT 优点
- 跨平台,几乎支持所有的平台
- 接口简单,容易上手,学习QT框架对学习其他框架有参考意义一定程度上简化了内存回收机制;开发效率高,能够快速的构建应用程序。
- 有很好的社区氛围,市场份额在缓慢上升。
- 可以进行嵌入式开发。
一:🔥 搭建Qt开发环境
🦋 QT 开发工具
💻 Qt 支持多种开发工具,其中比较常用的开发工具有:QtCreator、VisualStudio、Eclipse.
- QtCreator
🔥 Qt Creator 是⼀个轻量级的跨平台集成开发环境(IDE),专为使用 QT 框架进行应用程序开发而设计。它是⼀个功能强大、易于使用、快速且高效的工具,被广泛使用于编写各种类型的应用程序,如桌面应用程序、移动应用程序和嵌入式系统等。
🧑💻 Qt Creator 提供了⼀个可视化的界⾯设计器和代码编辑器,可以帮助开发者更快捷地创建复杂的用户界面和处理各种事件。它还包含了调试工具、版本控制工具、自动完成和智能提示等功能,以及支持多语言和跨平台的开发环境
Qt Creator 的主要特点包括:
- 紧密集成的 Qt 框架:Qt Creator 专门为 Qt 开发而设计,因此它与 Qt 框架集成得非常紧密,使开发者可以更容易地管理和部署他们的应用程序。
- 强大的编辑器:Qt Creator 具有一些先进的编辑器功能,如语法高亮、代码折叠、智能提示、自动完成和代码重构。
- 集成的调试器:Qt Creator 内置了调试器,允许开发人员在代码中设置断点以及检查变量、堆栈和调用树等信息。
- 高效的构建系统:Qt Creator 提供了⼀个高效的构建系统,可以自动构建和部署应用程序,同时支持使用不同的编译器和平台。
- 可视化界面设计器:Qt Creatorr 具有⼀个可视化界面设计器,它允许开发⼈员在没有编写代码的情况下创建复杂的用户界面
- 多语言支持:Qt Creator 支持多种编程语言,包括C++、QML、Javascript 等。总而言之,Creator 是一个功能齐全、易于使用且高效的跨平台 IDE,适用于各种类型的应用程序开发,特别是那些使用 Qt 框架的开发者
总而言之,Qt Creator 是⼀个功能齐全、易于使用且高效的跨平台 IDE,适用于各种类型的应用程序开发,特别是那些使用 QT 框架的开发者
- Visual Studio
🔥 Visual Studio 是由微软公司开发的集成开发环境(IDE)。它可以用来开发多种类型的应用程序。包括 windows 桌面应用程序、web 应用程序、移动应用程序、游戏等。 Visual studio 提供了丰富的开发工具和功能,包括代码编辑器、调试器、自动完成、代码重构、版本控制只等等。它支持多种编程语言,如:C++、C#、Visual Basic、F#、Python 等。
Visual Studio 具有以下一些主要特点:
- 多语言支持:Visual Studio 支持多种编程语言,包括 C++、C#、Visual Basic、F#、Python、JavaScript 等
- 丰富的工具集:vs 提供了各种开发工具,包括代码编辑器、调试器、代码分析工具等,以提高开发人员的效率
- 可视化设计:vs 提供了可视化的设计工具,如窗体设计器、 WPF 设计器等,使开发人员可以直观地设计用户界面
- 跨平台开发:vs 支持跨平台开发,可以开发适用于 Windows、Linux 和 macOs 等多个平台的应用程序
- 集成的调试器:vs 集成了强大的调试器,可以进行代码的单步调试、断点调试等操作来帮助开发人员查找和修复错误
- 丰富的扩展性:vs 可以通过安装扩展来扩展其功能,开发人员可以根据自己的需求选择并安装适合的护展。
- Eclipse
🔥 Eclipse 是著名的跨平台的自由集成开发环境(IDE)。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C++ 和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。QT框架可以与 Eclipse 集成,使开发者可以使用 Eclipse 的强大功能来开发 QT 应用程序
🦋 QtSDK的下载
⏬ Qt下载官⽹:http://download.qt.io/archive/qt/
⏬ 进⼊官⽹,按如下图⽰进⾏相应的系统版本下载即可。
打开官⽹链接,进⼊如下图⽰界⾯;
选择需要下载的版本;(本文以 5.14版本为例,所选具体版本为:5.14.2)
选择需要下载的版本;
选择Windows桌⾯应⽤程序;
🦋 QtSDK的安装
找到下载的⽂件并双击;注意:在双击之前先断⽹,否则需要我们注册Qt账号登录后才能进⼊下⼀步安装;(也可以选择注册账号)
直接下一步,然后再下一步选择安装文件夹(注意:不能路径不能带中文)
选择安装组件;这⾥我们安装的是QtCreator。如果电脑磁盘空间允许,建议全选以便后续使 ⽤,如果空间不允许, 选择部分组件;说明:其他未安装的组件在使⽤时可以另⾏添加;
4. 同意安装协议, 之后直接无脑next就行了;
🦋 环境变量配置
找到我们之前安装的 QT文件,然后点击箭头指向的地方,复制粘贴即可
"此电脑"------>⿏标右键,"属性"------>"⾼级系统设置"------>"环境变量"
"新建"------>填⼊"bin"路径------>"确定";
🦋 认识 SDK 的重要工具
📚 我们下载完成后就可以看到以下几个部分:
📚 第一个 Assistant 是一个 QT 的离线文档,用来查找 QT 的一些 API 的使用方法
第二个 designer 是一个图形化设计工具,可以通过拖拽的方式进行速成界面
第三个 linguist 是 QT 语言家,作用就是对国际化进行支持。允许你进行单独的创建一个语言文件配置,把界面上出现到的各种文字都配置到文件中,并且在文件中提前做好翻译工作,这样就可以做到一键切换语言。
第四个就是一个终端界面,可以通过执行命令的方式进行编译代码
第五个就是 QT 的一个集成开发工具,也是我们主要使用的工具.
三:🔥 认识QtCreator
🦋 QtCreator概览
📚 从开始菜单或者快捷⽅式打开QtCreator集成开发环境,启动之后看到类似下⾯的界⾯:
- 菜单栏:菜单栏⼀共有8个菜单选项,包含了常⽤的功能菜单:
- 模式选择:
- 构建套件选择器:构建套件选择器包含了 目标选择器 (Targetselector)、运行按钮 (Run)、调试按钮 (Debug) 和 构建按钮 (Building) 四个图标
4. 窗口模式下的工作模式
-
定位器 :使用定位器来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。
-
输出窗格 :输出窗格包含了问题、搜索结果 (Search Results)、应用程序输出、编译输出、Debugger Console、概要信息、测试结果 (Test Results) 7个选项,它们分别对应一个输出窗口,响应的快捷键依次是 Alt+ 数字 1~7。
-
会话记录 :可以对会话进行管理,包括 Clone。如果没打开工程,则显示的是最后一次打开的(会话)工程,否则,显示当前的会话(工程)
-
新建项目
-
打开已有项目
🦋 使用 QT Creator 创建项目
新建项目
选择项⽬模板
📚 弹出如下对话框:
📚 新建项目对话框里有五类项目模板模板:
常用的只有第⼀类 Application,选择它,在右侧会看到 Qt 应用程序的五个子模板:
- Qt Widgets Application:普通窗体模板,传统基于部件的窗体界面程序。
- Qt Console Application:Qt 控制台应用程序。因为 Qt 主要用于图形界面设计,这个控制台项目模板基本不用。
- Qt for Python:在Python下用 LGPL 的许可来开发闭源 Qt 软件。
- Qt Quick Application: Qt 提供的⼀种高级用户界面技术,使用它可以方便快速的为移动以及嵌入式设备开发流畅美观的用户界面。Qt Quick 模块是开发 QML 应用的标准库,提供了使用 QML 创建用户界⾯所需的⼀切,包括可视化、交互、动画、模型、视图、粒子效果以及着色效果等。
选择项目路径
📚 这里需要注意的是我们选择路径的时候一定不要带中文路径,不然在运行程序的时候会出现报错。
选择构建工具
🧑💻 这个是构建系统,通过 Qt 写的程序,涉及到一些 “元编程” 技术,是通过代码来生成代码。也就是说 Qt 框架 会在编译的时候,会自动调用一些列的生成工具,基于写的代码,生成一系列的其他 C++代码,最终编译的代码,也是最后生成的代码。
这里我们使用的是 qmake 构建工具 Qt 中的构建工具有三种可供选择,分别是:qmake、CMake、Qbs,下面依次介绍。
qmake
:qmake 是一个构建工具 (build tool),用于自动生成 Makefile 文件。qmake 支持跨平台构建。qmake 编辑的是一个后缀名为 .pro 的文件 是 Qt 独有的代码构建工具CMake
:CMake 是一个跨平台的构建工具。CMake 本身不是一个编译器,其实就是生成一个让编译器能读懂编译流程的文件工具。让 CMake 自动生成构建系统,例如 Makefile 和 Visual Studio 项目文件。CMake 是一个第第三方工具,有自己的文案 C++ 通用的代码构建工具,绝大部分 C++ 开源项目都使用 cmake 管理代码Qbs
:Qbs(Qt Build Suite: Qt构建套件) 同 qmake、CMake 一样都是构建工具。Qbs 号称是新一代的构建工具,比gmake 编译速度更快。Qbs 没有绑定 Qt 版本,它从项目文件的高级项目描述中生成一个正确的依赖表。而传统的MakeFile 生成工具如 qmake 和 CMake ,其在生成 MakeFile 文件后将实际的名利交给 Make 工具去执行。
由每个进程都 Qt官方声明,因市场原因,弃用Qbs。对于 Qt 用户来说,qmake是当前使用最广泛的构建工具,CMake其次。
填写类信息设置界面
📊 我们使用 Qt Creator 创建项目,会自动的生成一些代码出来,生成出来的代码就包含一个类。此处就是用来选择自动生成的类的父类是谁,有如下三种基类:
上述三个类之间的关系如下图:
选择语言和翻译软件
📚 点击 “下⼀步” 进入如下界面:
此处选择的语言是 “汉语”,“英语” 这样的语言,而不是 “编程语言”.
由于我们不考虑国际化,直接下一步就行
选择 Qt 套件
📕 默认只有第一个 " Desktop Qt 5.14.2 MinGW 64-bit ",如果安装配置了多个 Qt 套件,就可以都选上。Qt 套件是指 Qt 程序从编译链接到运行环境的全部工具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序生成和调试,至少需要 MinGW 中的编译器 g++(自动调用链接器)、g++ 配套的基础库、调试器 gdb 还有使用 MinGW 环境编译而成的 Qt 类库自身。默认情况下,在上面 Kit Selection 里选中全部套件。
因为当时我们只是选择以其中的一个下载,如果勾选了其他的选项的话,这里就需要进行选择
选择版本控制系统
点击"下一步"进入项目管理界面; 在项目管理界面可以设置作为子项目,以及加入版本控制系统管理。这两个功能暂时用不到,都用默认的,然后点击“完成"。
💡 ⼤家千万不要觉得⿇烦.事实上在⼤家熟练了之后,创建⼀个项⽬花的时间不会超过10秒钟.
最终效果演示
🔥 通过上述步骤完成了项目的创建,创建完成之后,Qt Creator 会直接进入代码编辑模式,可以看到类似下图界面:
🦋 认识QtCreator界⾯
左边栏
在编辑模式下,左边竖排的两个窗口叫做"边栏"。① 是项目文件管理窗口,② 是打开文件列表窗口。
在 QtCreator 菜单"控件" ………->“Show Left Sidebar”,或者使用快捷键:Alt+0 可以控制边栏的显示和隐藏。
- 边栏里的窗口数目可以增加,边栏子窗口标题栏有一排小按钮,最右边的是关闭按钮,倒数第二个是增加分栏按钮,可以添加多个边栏子窗口。
- 边栏窗口标题栏第一个控件是组合框,可以选择该子窗口的功能视图类型,目前可以选择8个视图类型:
代码编辑区
-
①和②:导航按钮"返回"和"前进",这与网页浏览器的前进和后退按钮类似,可以在之前浏览的多个代码文件或一个代码文件里多个位置之间快速切换。
-
③:标识当前显示的文件是只读还是可写,一般都是可写的。
-
④:文件类型图标,当前显示文件的类型,这个控件其实是一个菜单按钮,点击可以弹出丰富的文件处理功能菜单。
-
⑤:打开的文件名,可以在多个打开的文件之间选择切换,与边栏的"打开文档"视图是对应的。
-
6:关闭当前显示的文档。
-
⑦:为当前显示的文件添加额外的C++预处理指令,一般用不着。
-
⑧:选择符号,可以在当前显示的文件里多个函数、类、成员变量等之前快速切换,与边栏"大纲"视图是对应的。
-
⑨:编辑区光标的行号和列号。
-
⑩:代码编辑区分栏,可以增加多个编辑器窗口,显示多个打开的文档或显示较大源码文件的多个位置。
-
行首区:主要用来显示代码行号,以及调试断点标志和代码书签标志。右击行首区可以弹出右键菜单,菜单里可以切换书签、编辑书签以及设置或取消断点
-
同一行是既可以打断点也可以设置书签的,二者不冲突,其实它们根本就没关系。单击行号前面的浅灰色空白区可以直接打断点,再次单击可以取消断点,另外也可以用快捷键 F9 设置或取消断点。代码书签一般用右键菜单来设置,也可以用快捷键 Ctrl+M 设置或取消书签
-
编辑区:写代码的区域
UI 设计页面
📚 双击 widget.ui 文件,QtCreator 会自动进入设计模式,可以对图形界面进行可视化编辑
组件选择窗口
:组件选择窗口分为多个组,如 Layouts、Buttons、DisplayWidgets 等,界面设计的常见组件都可以在组件选择窗口中找到。UI 设计窗口
:如果要将某个组件放置到该窗口上时,从组件选择窗口上拖放一个组件到窗体上即可。动作编辑窗口
:动作编辑窗口包括 Action Editor 以及 Signals 和 Slots 编辑器。 Action Editor 主要是用来新建 Action,并且通过拖拽的动作,将新建好的Action 添加到菜单栏和工具上,Signals和 Slots 编辑器用于可视化地进行信号与槽的关联。对象浏览窗口
:用树状视图显示窗体上各组件之间的布局包含关系,视图有两列,显示每个组件的对象名称(ObjectName)和类名称。属性设置窗口
:显示某个选中的组件或窗体的各种属性及其取值,可以在属性设置窗口里修改这些属性的值。
左下角一共有四个按钮,下面分别介绍一下:
- 第一个按钮是选择构建项目使用的 Qt 套件和构建目标程序的类型(Debug或 Release)
对于第一个按钮,默认的是Debug,构建的是 Debug 类型的目标程序。如果需要构建 Release 版目标程序,点开左下角第一个按钮:
这里有三种构建模式
上图是针对项目只用到单一 Qt 套件的,如果之前配置了多个 Qt套件,看到的类似下图:
🔥 如果项目配置了多个可用的 Qt 套件,点开左下角第一个按钮后,会看到各个套件以及构建类型,如果要切换 Qt 套件或构建类型,直接选中相应条目,然后点击运行按钮就行了。如果构建和运行时没出错,就会显示出构建好的目标程序界面。
- 第二个是运行按钮,快捷键是 Ctrl + R,如果还没构建项目或刚修改了代码,直接点击运行的话,QtCreator 会自动构建生成新的目标程序并运行。
- 第三个是调试按钮,快捷键是 F5。调试程序之前,QtCreator 会自动构建生成最新的目标程序,并进入调试模式。
- 第四个是构建按钮,快捷键是 Ctrl + B,只构建最新的目标程序,但不运行。
🦋 3.4 项目代码解析
📚 我们创建好一个项目后,Qt会自动给我们生成一些代码。
widget.h
在 Qt 中,如果要使用 信号与槽 (signal和 slot) 的机制 就必须加入 O OBJECT 宏;
Ui::Widget *ui(process switch)
; 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。
main.cpp
📚 使用 QtCreator新建任意⼯程之后,main.cpp 文件中都会自动生成如下代码:
widget.cpp
widget.ui
🎈
widget.ui
是窗体界面定义文件,是一个 XML 文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等(和 HTML一样都是使用标签来表示数据)。用 UI 设计器可视化设计的界面都由 Qt 自动解析,并以 XML 文件的形式保存下来。在设计界面时,只需在 UI 设计器里进行可视化设计即可,而不用管 widget.ui文件是怎么生成的,进一步的 qmake 会调用相关工具,依据这个 xml 进一步生成 C++ 代码,从而把完整的的界面代码构造出来
.pro 工程文件
🔥 工程新建好之后,在工程目录列表中有一个后缀为".pro"的文件,".pro"文件就是工程文件(project),它是 qmake 自动生成的用于生产 Makefile 的配置文件。
./pro 的写法如下:
- 注释:从"#"开始,到这一行结束
- QT += core gui // Qt 包含的模块 Qt5 包含的模块如下图所示
- greaterThan(QT_MAJOR_VERSION,4); QT += widgets 这条语句的含义是,如果 QT MAJOR_VERSION 大于 4 也就是当前使用的 Qt5 及更高版本)需要增加 widgets 模块。如果项目仅需支持 Qt5 ,也可以直接添加 “QT += widgets” 一句。不过为了保持代码兼容 ,最好还是按照 QtCreator 生成的语句编写。
- 指定生成的应用程序名: TARGET=QtDemo4
- TEMPLATE = app:模板。告诉 qmake 为这个应用程序生成哪种 Makefile。下面是可供选择的模板:
app
:建立一个应用程序的 Makefile。这是默认值,所以如果模板没有被指定,这个将被使用。lib
:建立一个库的 Makefile。vcapp
:建立一个应用程序的 VisualStudio 项目文件。vclib
:建立一个库的 VisualStudio 项目文件。subdirs
:这是一个特殊的模板,它可以创建一个能够进入特定目录的 Makefile 并且为它调用 make 的Makefile.
- 工程中包含的源文件:SOURCES+=main.cpp / widget.cpp6.
- 工程中包含的头文件:HEADERS += widget.h
- 工程中包含的资源文件:RESOURCES+=painter.qrc
- 工程中包含的 “ui” 设计文件:FORMS += widget.ui
Qt 可选模块如下
🦋 中间文件
📚 以上的.h .cpp .ui .pro都是一些源文件,但是如果编译运行 Qt 项目后,构建构成中还会生成一些中间文件。
这里Qt还会创建一个目录,这个目录下生成的是一些临时文件。
🦁 编译 Qt 程序,还是会用到 Makefile 只不过这个 Makefile 不需要手动写, 而是 qmake自动生成的.
🦁 而这里的 ui_widget.h 就是我们编译运行成功后 Qt 给我我们生成的代码。而这个代码就会在 widget.cpp 中的 setupUi 中生成界面的具体细节
四:🔥 共勉
😋 以上就是我对 【Qt】新世界大门:概述
的理解, 觉得这篇博客对你有帮助的,可以点赞收藏关注支持一波~ 😉
相关文章:

【Qt】:概述(下载安装、认识 QT Creator)
🌈 个人主页:Zfox_ 🔥 系列专栏:Qt 目录 一:🔥 介绍 🦋 什么是 QT🦋 QT 发展史🦋 Qt版本🦋 QT 优点 一:🔥 搭建Qt开发环境 ǹ…...
11、《Web开发性能优化:静态资源处理与缓存控制深度解析》
Web开发性能优化:静态资源处理与缓存控制深度解析 一、性能优化的核心战场:静态资源处理 现代Web应用静态资源体积占比普遍超过70%,以典型Vue项目为例: dist/ ├─ css/ # 38% 体积 ├─ js/ # 45% 体积 └─ img…...

【Linux】多线程 -> 从线程概念到线程控制
线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行。在Linux系统中,在CPU眼…...
用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。
要实现Ubuntu中自己开发的Python程序自动升级,可以通过以下几种方式: 1. 使用 Git 仓库 定时任务 如果你的Python程序托管在Git仓库中,可以通过定时拉取最新代码来实现自动升级。 步骤: 确保Python程序在Git仓库中。在Ubuntu上…...
java处理pgsql的text[]类型数据问题
背景 公司要求使用磐维数据库,于是去了解了这个是基于PostgreSQL构建的,在使用时有场景一条图片数据中可以投放到不同的页面,由于简化设计就放在数组中,于是使用了text[]类型存储;表结构 #这是一个简化版表结构&…...
LeetCode 热门100题-字母异位词分组
2.字母异位词分组 题目描述: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan&q…...
耐张线夹压接图片智能识别
目录 一、图片压接部位定位1、图像准备2、人工标注3、训练4、推理5、UI界面 压接状态智能识别 一、图片压接部位定位 ,往往X射线照片是一个大图,进行图片压接部位定位目的是先找到需识别的部位,再进行识别时可排除其他图像部位的干扰&#x…...
ADC 的音频实验,无线收发模块( nRF24L01)
nRF24L01 采用 QFN20 封装,有 20 个引脚,以下是各引脚的详细介绍: 1. 电源引脚 ◦ VDD:电源输入端,一般接 3V 电源,为芯片提供工作电压,供电电压范围为 1.9V~3.6V。 ◦ VSS…...
企业SSL 证书管理指南
文章从以下几个部分展开 SSL证书的用途和使用场景SSL证书的申请类型和实现方式SSL证书的管理SSL证书的续签 一、SSL 证书的用途和使用场景 1.1 为什么要使用 SSL 证书? 1. 数据安全 🛡️- 在 HTTP 传输中,TCP 包可以被截获,攻…...

Python Pandas(7):Pandas 数据清洗
数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。数据清洗与预处理的常见步骤: 缺失值处理:识别并…...

南京观海微电子----整流滤波电路实用
01 变压电路 通常直流稳压电源使用电源变压器来改变输入到后级电路的电压。电源变压器由初级绕组、次级绕组和铁芯组成。初级绕组用来输入电源交流电压,次级绕组输出所需要的交流电压。通俗的说,电源变压器是一种电→磁→电转换器件。即初级的交流电转化…...

【python】向Jira测试计划下,附件中增加html测试报告
【python】连接Jira获取token以及jira对象 # 往 jira 测试计划下面,上传测试结果html def put_jira_file(plain_id):# 配置连接jiraconn ConnJira()jira conn.jira_login()[2]path jira.issue(O45- plain_id)attachments_dir os.path.abspath(..) \\test_API…...

探索ChatGPT背后的前端黑科技
由于图片和格式解析问题,可前往 阅读原文 在人工智能与互联网技术飞速发展的今天,像ChatGPT这样的智能对话系统已经成为科技领域的焦点。它不仅能够进行自然流畅的对话,还能以多种格式展示内容,为用户带来高效且丰富的交互体验。然…...

Agents Go Deep 智能体深入探索
Agents Go Deep 智能体深入探索 核心事件 OpenAI发布了一款先进的智能体“深度研究”,它能借助网络搜索和推理生成研究报告。 最新进展 功能特性:该智能体依据数百个在线资源生成详细报告,目前仅支持文本输出,不过很快会增加对图…...
DeepSeek全生态接入指南:官方通道+三大云平台
DeepSeek全生态接入指南:官方通道三大云平台 一、官方资源入口 1.1 核心交互平台 🖥️ DeepSeek官网: https://chat.deepseek.com/ (体验最新对话模型能力) 二、客户端工具 OllamaChatboxCherry StudioAnythingLLM …...

c++TinML转html
cTinML转html 前言解析解释转译html类定义开头html 结果这是最终效果(部分):  前言 在python.tkinter设计标记语言(转译2-html)中提到了将Ti…...
STM32硬件SPI函数解析与示例
1. SPI 简介 SPI(Serial Peripheral Interface)即串行外设接口,是一种高速、全双工、同步的通信总线,常用于微控制器与各种外设(如传感器、存储器等)之间的通信。STM32 系列微控制器提供了多个 SPI 接口&a…...

滤波器:卡尔曼滤波
卡尔曼滤波(Kalman Filter)是一种高效的递归算法,主要用于动态系统的状态估计。它通过结合系统模型和噪声干扰的观测数据,实现对系统状态的最优估计(在最小均方误差意义下)。以下从原理、使用场景和特点三个…...

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决
在深度学习框架中,TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow(点击查看) 和 PyTorch(点击查看)。它们引领着 AI 开发的潮流,吸引着无数开发者投身其中。但这两大框…...

Windows环境管理多个node版本
前言 在实际工作中,如果我们基于Windows系统开发,同时需要维护老项目,又要开发新项目,且不同项目依赖的node版本又不同时,那么就需要根据项目切换不同的版本。本文使用Node Version Manager(nvm࿰…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...