QT6学习第一天
QT介绍
Qt是一个跨平台的应用程序和UI开发框架,可用于桌面、嵌入式和移动平台的应用程序和用户界面的开发。 使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统编译部署这些应用程序。Qt默认的IDE(Integrated Development Environment,集成开发环境)是Qt Creator,它是一个全新的跨平台Qt IDE。Qt Creator是由Qt构建的,可单独使用,也可与Qt库和开发工具组成一套完整的SDK(Software Development Kit,软件开发工具包),其中包括高级C++代码编辑器、项目和生成管理工具、集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览工具等。Qt本身是一个C++开发框架,前期只有C++ Widgets一种开发技术,直到Qt 4.7引入了一种高级用户界面技术QtQuick,该技术更便于开发人员和设计人员协同创建动态触摸式用户界面和应用程序。
1995年5月挪威的奇趣公司的两位创始人发布了第一版QT,仅支持Unix和Windows两个平台。2001年奇趣发布了QT3,增加了对macOS平台的支持。2005年6月,奇趣发布了QT4。这是一个全新的版本,与之前的3.x系列不仅二进制不兼容,甚至API也不兼容。2008年诺基亚收购奇趣并更名为QT Development Framework。并在2009年5月将QT开源。2009年3月QT4.5发布,同时还发布了全新的跨平台集成开发环境QT Creator 1.0 。另外还首次提供了可与现存的商业授权和GPL授权并行的LGPL授权。2009年12月,发布了支持Symbian平台的版本。2010年9月,QT4.7发布,并引入了一种全新的高级用户界面技术QT Quick可一种声明式编程语言QML,用于为移动和嵌入设备创建动态触摸式用户界面和轻量级应用程序。2012年12月,Qt 5正式发布,这是继Qt 4之后的另一个大的升级。Qt 5引入了全新的硬件加速图形处理,并且将QML和Qt Quick提升到与C++等同的地位。传统的基于C++的Qt Widgets仍将继续获得支持,但是全新的架构所带来的性能提升则更多作用于QML和QtQuick。 2020年12月,Qt 6.0正式发布。为了适应不断发展的新技术和新需求,Qt 6在利用C++17、下一代QML、新的图形架构、Qt Quick统一2D和3D、完全支持CMake等核心重点领域进行了大量改进,目标是让Qt成为未来的生产力平台。早期的Qt 6版本在一些功能上并不完善。2021年9月,Qt 6的第一个长期支持版本Qt 6.2LTS发布,这是第一个推荐入门使用的Qt 6版本。
QT特点
- 支持跨平台开发
- 可以在Linux、Windows或macOS上设计、开发一套代码,然后交叉编译到各种操作系统或裸机上进行部署,目标平台包括桌面平台(Linux/X11、macOS、Windows)、移动平台(Android、iOS)、嵌入式平台(Android Automotive OS、webOS OSE、嵌入式Linux、实时操作系统INTEGRITY和QNX)、Web平台(WebAssembly)等。
- 配套工具齐全
- 不仅有可供设计师和开发者无缝协作的QtDesign Studio,还有跨平台的集成开发环境Qt Creator,可以帮助用户编写代码,完成构建、编译、本地化等任务。另外,Qt还有众多质量管理工具和部署工具,能够为整个软件生命周期提供全面保障。
- 拥有丰富的API
- Qt包含一整套高度直观、模块化的C++库类,拥有丰富的API,可简化应用程序的开发。Qt具有跨平台的基本组件和功能全面的扩展模块,涉及图形界面、网络、数据库、音视频、3D、图表、XML、数据可视化、Web等众多领域。
- 支持多种语言
- 支持C++、QML和Python等。基于C++的Qt Widgets用于创建复杂的桌面应用程序;而基于声明式UI语言QML的Qt Quick用于创建流畅、动态的移动触摸界面程序,还可以使用JavaScript进行逻辑业务描述;Qt for Python可以通过Python进行Qt程序开发。
- 强大的开源社区
QT开发框架
Qt的模块可以分为Qt基本模块(QtEssentials)和Qt扩展模块(Qt Add-Ons),整个开发框架如图
基础模块图示
扩展模块
QT Quick和QML介绍
自QT 4发布以来,QT已成功在桌面和移动系统开发了众多应用。但随着用户的使用逐步从PC转换便携计算机和移动设备,传统的桌面系统被触屏式智能手机和平板电脑所取代,经典的窗口界面时代已经成为过去。使用QT的经典C++代码实现兼容不同大小屏幕的程序变得愈加困难。这种背景下,急需一种全新的界面开发工具适应现代化界面开发工作。
对Qt Quick的定义为:“一种高级用户界面技术,可以轻松创建供移动和嵌入式设备使用的动态触摸式界面和轻量级应用程序。”Qt Quick主要由一个改进的Qt Creator IDE(其中包含了Qt Quick设计器)、新增的简单易学的QML(Qt Meta-Object Language,Qt元对象语言)和新加入Qt库中名为QtDeclarative的模块等三部分组成。这些使得QML更方便不熟悉C++的开发人员和设计人员使用。
Qt Quick是Qt中基于QML语言的一种用户界面技术的统称,它是QML、JavaScript和C++等多种技术的集合。具体来说,在Qt框架中Qt Quick模块是QML类型和功能的标准库,包含了可视化类型、交互类型、动画、模型、视图、粒子特效和渲染特效等。
在QML应用程序中,我们可以通过一个简单的import语句来使用Qt Quick模块提供的所有功能。Qt QML模块提供了QML的引擎和语言基础,而Qt Quick模块提供了QML创建用户界面所需的所有基本类型。Qt Quick模块提供了一个可视画布,并提供了丰富的类型,用于创建可视化组件、接收用户输入、创建数据模型和视图、生成动画效果等。Qt Quick模块提供了两种接口:使用QML语言创建用户界面的QML接口和使用C++语言扩展QML的C++接口。使用Qt Quick模块,设计人员和开发人员可以轻松地构建流畅的动态式QML用户界面,并且在需要的时候将这些用户界面连接到任何C++后端。
QML是一种用于描述应用程序用户界面的声明式编程语言,它使用一些可视组件以及这些组件之间的交互和关联来描述用户界面。QML是一种高可读性的语言,可以使组件以动态方式进行交互,并且组件在用户界面中可以很容易地实现自定义和重复使用。QML提供了一个具有高可读性的类似JSON的声明式语法,并提供了必要的JavaScript语句和动态属性绑定的支持。QML语言和引擎框架由Qt QML模块提供。Qt QML模块为QML语言开发应用程序和库提供了一个框架,它定义并实现了语言及其引擎架构,并且提供了一个接口,允许应用开发者以自定义类型和集成JavaScript、C++代码的方式来扩展QML语言。Qt QML模块提供了QML和C++两套接口。
Qt Widgets和Qt Quick
Qt 6包含两种用户界面技术:Qt Quick和Qt Widgets。Qt Quick开发的界面流畅、动态,适合于触摸界面;而Qt Widgets用于创建复杂的桌面应用程序。与Qt Widgets使用C++进行开发不同,Qt Quick使用QML来构建用户界面,并使用JavaScript来实现逻辑。
Qt Quick用于创建动态和流畅的用户界面,并且Qt Quick Controls提供了按钮、对话框和菜单等控件,不仅可以用来开发移动应用程序,也可以用来开发桌面应用程序。
Qt Widgets包含了桌面环境中常见的用户界面小部件,这些小部件与底层平台很好地集成在一起,可以在Windows、Linux和macOS上提供原生外观。与Qt Quick不同,这些小部件适用于创建大型桌面应用程序,不太适合创建具有流畅界面的以触摸为中心的应用程序。
总体来说,Qt Quick是触摸界面应用的最佳选择。推荐使用QtQuick的情况如下。
- 使用短周期原型化设计
- 在移动、嵌入式设备或MCU上运行
- 在触摸屏上工作
- 包含大量动画和图形效果
Qt Widgets主要用于创建复杂的桌面应用程序。推荐使用QtWidgets的情况如下。
- 大型标准工业应用
- 仅在桌面上运行
- 类似于本地Linux、macOS和Windows应用程序
- 需要很好地集成到底层平台中
QT6下载安装
安装Qt和Qt Creator时,需要下载Qt Online Installer进行在线安装,读者可以到Qt官网下载,选择下载开源版(Downloads foropen source users),然后进行下载。我是穷鬼所以选择开源版。
点击后滑倒下面选择下载
我是windows,就选择对应平台
然后等待下载完成。
完成后,双击安装,首先出现的是欢迎界面,需要有QT账号,没有就注册一个,然后选择安装路径(不能有中文),在选择组件界面,可以选择安装一些模块,鼠标指针移到一个组件上,可以显示该组件的简单介绍。这里主要选择了MinGW版本的Qt 6.8.0和一些附加库,建议初学者使用相同的选择,为了方便后面学习移动开发内容,也可安装Android模块。接下来都默认即可。
这里的MinGW即Minimalist GNU For Windows,是将GNU开发工具移植到Win32平台下的产物,是一套Windows上的GNU工具集,用其开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行。在Windows系统中,用户还可以使用MSVC版本的Qt,需要使用Visual C++作为编译器。
最后我们的QT Creator就装好了
QT Creator介绍
QT Creator特点
- 支持多种系统平台
- 可以在Windows、Linux和macOS桌面操作系统上运行,并允许开发人员编译构建桌面、移动和嵌入式平台应用程序。通过构建设置可以轻松地在目标之间切换。
- 强大的代码编辑器
- 可以在Qt Creator代码编辑器上使用C ++、QML、JavaScript、Python和其他语言编写代码,具备代码补全、语法突出显示、代码重构等功能。
- 简明的向导和丰富的示例
- 有大量演示程序、代码提示和教程,可以快速入门
- 所见即所得的UI设计工具
- 包括QT Designer和QT Quick Designer
- 前者用于Qt Widgets设计和构建图形用户界面,可以用带有传统C++ Qt API的表单快速设计和构建小部件和对话框;后者可以从头开始或基于现成的UI控件快速设计和构建Qt Quick应用程序和组件。
- 好用的帮助系统
- 集成了QT Assistant,实现上下文相关的帮助系统,可以从编辑器一键进入关键字的帮助文档。格式清晰、内容详尽的帮助文档可以让使用者快速上手。
- 快速完成国际化
- 通过集成QT Linguist,可以方便快捷地将Qt C++和Qt Quick应用程序翻译成本地语言。
- 方便的项目和本版管理
- 无论导入现有项目,还是从头开始创建一个项目,Qt Creator都能生成所有必要的文件,包括支持CMake和用qmake进行交叉编译。
- 丰富的调试和性能分析
- ●丰富的调试和性能分析:集成调试器和性能分析器,对于C++代码,支持设置断点、单步调试和远程调试等功能;对于QML应用程序,通过时间线和火焰图,可以由CPU和内存使用情况的可视化表示快速识别性能瓶颈。
- 支持多种版本控制
- Qt Creator集成了大多数流行的版本控制系统,包括Git、Subversion、Perforce和Mercurial等。
QT Creator界面介绍
打开QT Creator,如图所示
-
菜单栏
- 文件:
- 新建、打开、关闭项目或文件等基本功能。
- 编辑:
- 撤销、剪切、复制、查找和选择编码等功能,改变字号大小和vim风格也在这里。最底下的Preferences可以调整QT Creator的各个方面的设置。
- 试图:
- 控制侧边栏和输出窗口显示等相关菜单
- 构建:
- 包含构建和运行项目等相关菜单
- 调试:
- 包含调试程序相关的功能菜单
- 分析:
- 包含QML分析器、Valgrind内存和功能分析器等菜单
- 工具:
- 提供快速定位菜单、C++和QML/JS相关工具菜单、测试相关菜单以及Qt Linguist等外部工具菜单
- 控件:
- 包含设置全屏显示、分栏和新窗口打开文件等菜单。
- 帮助:
- 包含Qt帮助、QT Creator版本信息、报告bug和插件管理等菜单。
- 文件:
-
模式选择器(Mode Selector)
Qt Creator包含欢迎、编辑、设计、调试、项目和帮助6种模式,各种模式完成不同的功能,也可以使用快捷键来切换模式,各自对应的快捷键依次是Ctrl+数字1~6。- 欢迎模式
- 提供一些帮助教程、查看官网论坛啥的
- 显示了最近打开工程的界面
- 编辑模式
- 查看和编辑程序代码,管理项目文件。
- 还有就是你敲代码的地方
- 设计模式
- 编写Qt Widgets程序时,用户可以在这里设计图形界面,进行部件属性设置、信号和槽设置、布局设置等操作。编写QML代码时,用户也可以使用Qt Quick Designer,以“所见即所得”的方式设计界面。通过“帮助→关于插件”菜单项打开已安装插件对话框,然后在其中勾选QmlDesigner项即可启用。
- 调试模式
- 对于C++代码,这里支持设置断点、单步调试和远程调试等功能,其中包含局部变量和监视器、断点、线程等查看窗口;对于QML代码,可以使用QML Profiler工具对QML代码进行分析。用户可以在“编辑→Preferences”菜单项中设置调试器的相关选项。
- 项目模式
- 其包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系设置等。构建设置中,用户可以对项目的版本、使用的Qt版本和编译步骤进行设置;编辑器设置中可以设置文件的默认编码和缩进等。
- 帮助模式
- 就是各种文档手册。其包含目录、索引、查找和书签等导航模式,可以在帮助中查看和学习Qt和Qt Creator的各方面内容。可以在“编辑→Preferences”菜单项中对帮助选项进行相关设置。
- 欢迎模式
-
构建套件选择器(Kit Selector)
- 目标选择器
- 用来选择构建哪个项目、选择构建哪个版本(Debug、Release)
- 运行
- 点击进行项目的构建和运行
- 调试
- 点击进入调试模式
- 构建
- 点击进行项目的构建
- 目标选择器
-
定位器(Locator)
用来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。 -
输出窗口
- 问题窗口
- 显示程序编译时的错误和警告信息
- 搜索结果
- 显示执行搜索操作后的结果信息
- 应用程序输出
- 显示程序运行过程中输出的所有信息
- 编译输出
- 显示程序编译过程中输出的信息
- 版本控制
- 显示版本控制相关输出信息
- 问题窗口
原文地址:https://blog.csdn.net/qq_15409121/article/details/143798272
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!