当前位置: 首页 > news >正文

QT学习笔记1(QT和QT creator介绍)

QT学习笔记1(QT和QT creator介绍)

Qt 是一个跨平台的应用开发框架,主要用于图形用户界面(GUI)应用的开发,但也支持非GUI程序的开发。Qt 支持多种平台,如Windows、macOS、Linux、iOS和Android,并提供了一致的API,允许开发者一次编写代码,然后在多个平台上编译和运行。

Qt 的主要特点
跨平台开发
信号和槽机制:Qt 特有的信号和槽机制用于对象间的通信,非常适合事件驱动的应用开发。
丰富的组件库:Qt 提供了大量的UI组件、工具库、网络库、多媒体
国际化支持:Qt 自带国际化工具,使得应用程序支持多种语言的转换变得更加方便。
集成的开发工具:Qt 提供了集成开发环境(IDE),包括设计器(Qt Designer)、资源编辑器等工具来帮助开发者高效开发

Qt Creator 是 Qt 的官方集成开发环境(IDE),专门为Qt应用的开发而设计。它支持C++、QML(Qt Modeling Language)、Python等语言,并集成了丰富的调试和设计工具,帮助开发者更加便捷地开发应用。

Qt Creator 的主要功能:
项目管理:不同类型的项目管理,如纯C++项目、QML项目等
代码编辑和补全:智能代码补全、语法高亮、代码重构等
UI设计工具:内置了Qt Designer,开发者可以通过拖拽方式设计用户界面,而不需要手动编写UI代码。
调试工具:支持多平台调试,开发者可以直接在 Qt Creator 中使用GDB或LLDB等调试工具。
跨平台构建:提供了跨平台的编译和构建工具,支持多种构建系统(如qmake、CMake等)。
版本控制:集成了版本控制系统(如Git、Subversion等)

开发流程
跨平台开发的典型流程如下:

编写跨平台代码:使用 Qt 框架开发应用时,尽量避免使用特定于操作系统的API。
选择编译器和工具链:根据目标平台选择适当的编译器。例如,Windows 用 MSVC,Linux 用 GCC,macOS 用 Clang。

在 Windows 上你可以使用 MSVC 或 MinGW 编译项目。
在 macOS 和 Linux 上使用 Clang 或 GCC 编译同一项目。
Android 和 iOS 开发需要使用特定的编译工具链,如 Android NDK 或 Xcode 的工具。
在不同平台编译:在每个平台上使用相应的编译工具链来编译应用程序,并进行测试

“Qt Creator 4.11.0 Based on Qt 5.14.0 (MSVC 2017, 32 bit)” 表示的是 Qt Creator 和 Qt 版本以及编译环境之间的关系。让我们逐步分析:

1. Qt Creator 4.11.0
这是 Qt Creator 的版本号,表示你正在使用的是 4.11.0 版本的 Qt Creator。
Qt Creator 是集成开发环境(IDE),帮助你更方便地编写、调试和管理使用 Qt 框架开发的项目。
2. Based on Qt 5.14.0
这意味着 Qt Creator 4.11.0 是基于 Qt 5.14.0 版本构建的。
Qt 5.14.0 是 Qt 框架的一个具体版本,它提供了开发应用程序所需的核心库和模块(如 Qt Widgets、Qt Quick、Qt Core 等)。
Qt Creator 本身也是用 Qt 框架开发的应用程序,这里指的是 Qt Creator 使用了 Qt 5.14.0 的 API 和库来构建其自身的功能和界面。
3. MSVC 2017, 32 bit
这是 Qt Creator 在编译 Qt 项目时将使用的 编译器和工具链的类型。
MSVC 2017 表示使用的是 Microsoft Visual C++ 2017 作为编译器,常用于 Windows 平台开发。
32 bit 表示编译器生成的应用程序将是 32位 的。这意味着你的 Qt 项目将使用 32 位的 MSVC 2017 编译器来编译和生成 32 位的可执行文件。
总结他们的关系:
Qt Creator 是一个 IDE,用于管理和开发使用 Qt 框架构建的应用程序。
Qt 5.14.0 是 Qt 框架的版本,包含了 Qt 提供的库和工具,帮助你构建跨平台的应用程序。Qt Creator 本身是使用这个框架开发的。
MSVC 2017, 32 bit 是 Qt Creator 使用的 编译器工具链,用于编译和生成你的 Qt 项目。它确保你开发的应用程序能够在 Windows 上以 32 位格式运行。
因此,Qt Creator 是你用来开发 Qt 项目的 IDE,它本身是基于 Qt 框架开发的,而它又使用 MSVC 编译器来编译你的项目。

Built on Dec 10 2019 12:27:13
表示这个版本的 Qt Creator 是在 2019年12月10日 编译和构建的,时间是 12:27:13。
3. From revision 017ed74400
这部分表示代码版本控制中的 修订号(revision number)。这是唯一标识这次构建的代码库的一个代码提交版本号,帮助开发者追踪构建时使用的代码版本。
4. Copyright 2008-2019 The Qt Company Ltd. All rights reserved.
这是 Qt Creator 和 Qt 框架的版权声明,表示从 2008年到2019年,Qt Creator 的版权归 The Qt Company Ltd. 所有。
5. The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
这是一条法律免责声明,表示这个软件是 按原样 提供的,没有任何形式的担保。具体来说:
NO WARRANTY OF ANY KIND:没有任何形式的保证。
INCLUDING THE WARRANTY OF DESIGN:包括关于设计的保证。
MERCHANTABILITY:没有对适销性(即能否符合市场需求)的保证。
FITNESS FOR A PARTICULAR PURPOSE:没有对特定用途适用性的保证。
这意味着 Qt Creator 是一个免费开源的软件,Qt 公司不对其功能或特定用途的适用性提供任何法律保证或承诺。用户使用该软件需要自行承担风险

相关文章:

QT学习笔记1(QT和QT creator介绍)

QT学习笔记1(QT和QT creator介绍) Qt 是一个跨平台的应用开发框架,主要用于图形用户界面(GUI)应用的开发,但也支持非GUI程序的开发。Qt 支持多种平台,如Windows、macOS、Linux、iOS和Android&a…...

存储电话号码的数据类型,用 int 还是用 string?

在 Java 编程中,存储电话号码的选择可以通过两种常见方式进行:使用 int 类型或 String 类型。这种选择看似简单,但实际上涉及到 JVM 内部的字节码实现、内存优化、数据表示、以及潜在的可扩展性问题。 Java 基本数据类型与引用数据类型的差异…...

【目标检测】工程机械车辆数据集2690张4类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2694 标注数量(xml文件个数):2694 标注数量(txt文件个数):2694 标注…...

target_link_libraries()

target_link_libraries() 是 CMake 中的一个命令,用于指定目标(如可执行文件或库)所依赖的其他库。其主要作用包括: 链接库:将指定的库链接到目标上,使目标能够调用这些库中的函数和使用其功能。 管理依赖…...

Javascript数组研究09_Array.prototype[Symbol.unscopables]

Symbol.unscopables 是 JavaScript 中一个相对较新的符号(Symbol),用于控制对象属性在 with 语句中的可见性。它主要用于内置对象,如 Array.prototype,以防止某些方法被引入到 with 语句的作用域中,避免潜在…...

SkyWalking 自定义链路追踪

对项目中的业务方法&#xff0c;实现链路追踪&#xff0c;方便我们排查问题 引入依赖 <!‐‐ SkyWalking 工具类 ‐‐> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm‐toolkit‐trace</artifactId> <vers…...

Linux驱动开发(速记版)--设备模型

第八十章 设备模型基本框架-kobject 和 kset 80.1 什么是设备模型 设备模型使Linux内核处理复杂设备更高效。 字符设备驱动适用于简单设备&#xff0c;但对于电源管理和热插拔&#xff0c;不够灵活。 设备模型允许开发人员以高级方式描述硬件及关系&#xff0c;提供API处理设备…...

动手学深度学习(李沐)PyTorch 第 6 章 卷积神经网络

李宏毅-卷积神经网络CNN 如果使用全连接层&#xff1a;第一层的weight就有3*10^7个 观察 1&#xff1a;检测模式不需要整张图像 很多重要的pattern只要看小范围即可 简化1&#xff1a;感受野 根据观察1 可以做第1个简化&#xff0c;卷积神经网络会设定一个区域&#xff0c…...

新编英语语法教程

新编英语语法教程 1. 新编英语语法教程 (第 6 版) 学生用书1.1. 目录1.2. 电子课件 References A New English Grammar Coursebook 新编英语语法教程 (第 6 版) 学生用书新编英语语法教程 (第 6 版) 教师用书 1. 新编英语语法教程 (第 6 版) 学生用书 https://erp.sflep.cn/…...

Golang 服务器虚拟化应用案例

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

Elasticsearch基础_4.ES搜索功能

文章目录 一、搜索辅助功能1.1、指定返回的字段1.2、结果计数1.3、结果分页 二、搜索匹配功能2.1、查询所有文档2.2、term级别查询2.2.1、term查询2.2.2、terms查询2.2.3、range查询2.2.4、exists查询 2.3、布尔查询2.3.1、must&#xff0c;should&#xff0c;must_not2.3.2、f…...

Elasticsearch要点简记

Elasticsearch要点简记 1、ES概述2、基础概念&#xff08;1&#xff09;索引、文档、字段&#xff08;2&#xff09;映射&#xff08;3&#xff09;DSL 3、架构原理4、索引字段的数据类型5、ES的三种分页方式&#xff08;1&#xff09;深度分页&#xff08;fromsize&#xff09…...

【通信协议】IIC通信协议详解

IIC&#xff08;Inter-Integrated Circuit&#xff09;通信协议&#xff0c;又称为I2C&#xff08;Inter-Integrated Circuit 2&#xff09;协议&#xff0c;是一种广泛使用的串行通信协议。它由Philips Semiconductor&#xff08;现NXP Semiconductors&#xff09;开发&#x…...

2024年中国科技核心期刊目录(社会科学卷)

2024年中国科技核心期刊目录 &#xff08;社会科学卷&#xff09; 序号 期刊代码 期刊名称 1 SC02 JOURNAL OF S…...

用Python集成免费IP归属地查询API

IP查询的优势是什么&#xff1f; IP查询是一种强大的工具&#xff0c;能够快速提供关于IP地址的信息&#xff0c;如地理位置、互联网服务提供商&#xff08;ISP&#xff09;、连接类型等。这些数据在多种场景下都非常有用&#xff0c;帮助用户理解网络环境和用户行为。 首先&…...

C 数组

C 数组 数组是C语言中的一种基本数据结构&#xff0c;用于存储一系列相同类型的数据。它是连续的内存分配&#xff0c;允许通过索引快速访问元素。本文将详细介绍C数组的概念、使用方法、以及注意事项。 1. 数组的概念 数组是一个集合&#xff0c;可以存储一定数量的元素。在…...

【Unity】unity安卓打包参数(个人复习向/有不足之处欢迎指出/侵删)

1.Texture Compression 纹理压缩 设置发布后的纹理压缩格式 Use Player Settings:使用在播放器设置中设置的纹理压缩格式 ETC&#xff1a;使用ETC格式&#xff08;兼容&#xff09; ETC2&#xff1a;使用ETC2格式&#xff08;很多设备不支持&#xff09; ASTC&#xff1a;使用…...

C0016.Clion中qDebug()打印输出中文时,都是问号??????的解决办法

问题描述 在clion中使用qDebug打印输出中文内容时&#xff0c;都是&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;如下图&#xff1a; 注意&#xff1a;修改该文件的编码格式就行&#xff0c;该文件名为apr.cpp&#xff1b; 解决办法...

C++ priority_queue 优先队列构造大根堆和小根堆

priority_queue的三个参数 template <class T, class Container std::vector<T>, class Compare std::less<typename Container::value_type>> class priority_queue;1、元素类型 2、底层容器类型&#xff0c;默认vector 3、比较函数&#xff08;传入的是…...

音视频入门基础:FLV专题(9)——Script Tag简介

一、SCRIPTDATA 根据《video_file_format_spec_v10_1.pdf》第75页到76页&#xff0c;如果某个Tag的Tag header中的TagType值为18&#xff0c;表示该Tag为Script Tag&#xff08;脚本Tag&#xff0c;又称Data Tag、SCRIPTDATA tag&#xff09;。这时如果Filter的值不为1表示未加…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...