当前位置: 首页 > 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表示未加…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...