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

第1章 认识Qt

1.1 Qt概述

  1. Qt是一个完整的跨平台软件开发框架,其致力于简化桌面、嵌入式和移动平台的应用程序和用户界面的开发。经过30余年的发展,现在全球70多个行业数以亿计的设备和应用在使用Qt。全新主要版本Qt 6是面向未来的生产力平台,可以使用同一套工具设计、开发2D和3D用户界面,实现下一代用户体验。
  2. 使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统编译部署这些应用程序。Qt本身是一个C++开发框架,前期只有C++ Widgets一种开发技术,直到Qt 4.7引入了一种高级用户界面技术Qt Quick,该技术更便于开发人员和设计人员协同创建动态触摸式用户界面和应用程序。

1.1.1 Qt的历史

  1. 1995年:挪威的奇趣科技公司(Trolltech)发布Qt第一个公开版本。
  2. 2008年:诺基亚(Nokia)宣布完成对Trolltech的收购。Qt的工作重心由桌面系统转移至诺基亚旗下的手持设备。
  3. 2010年:Qt 4.7发布,引入了一种全新的高级用户界面技术Qt Quick和一种声明式编程语言QML。
  4. 2012年:芬兰的Digia公司从诺基亚收购Qt软件技术和Qt业务。Qt正在努力成为一个全平台的开发框架。
  5. 2014年:Qt公司在Digia内部成立。Qt公司成为独立的上市公司。
  6. 2020年:Qt 6.0正式发布。目标是让Qt成为未来的生产力平台。

1.1.2 Qt的特色

  1. 支持跨平台开发:Qt可以“一次开发、任意部署”,可以在Linux、Windows或Mac上设计、开发一套代码,然后交叉编译到各种操作系统或裸机上进行部署。
  2. 配套工具齐全:Qt拥有全流程的众多设计开发工具,可以为项目简化每一步工作流程。不仅包括设计师和开发者能无缝协作的Qt Design Studio,还有跨平台的集成开发环境Qt Creator。
  3. 拥有丰富的APIs:Qt包含一整套高度直观、模块化的C++库类,拥有丰富的APIs可简化应用程序的开发。
  4. 支持多种语言:Qt支持不同的开发语言,包括C++、QML和Python。Qt Quick用于创建流畅、动态的移动触摸界面程序,还可以使用JavaScript进行逻辑业务描述。
  5. 开源且永不过时:Qt根植于开源,其开源社区由全球150多万开发者组成。强大且活跃的社区让Qt蓬勃发展,使得Qt生态系统可以为项目的未来保驾护航。

1.1.3 Qt软件开发框架介绍

Qt的模块可以分为Qt基本模块(Qt Essentials)和Qt扩展模块(Qt Add-Ons)。
在这里插入图片描述

1.1.4 Qt授权

  1. 对于应用程序开发,Qt提供了商业和开源许可证下的双重许可证。
    1)商业许可证包含了根据自己的条件创建和分发软件的全部权利,而无需承担任何开源许可义务,还可以获得官方的技术支持。
    2)Qt也可以在GPL和LGPLv3开源许可证下使用,不过,Qt工具和一些库仅在GPL下可用。Qt开源许可非常适合开源项目、学术目的或者学生学习使用等项目。
  2. 可以在Qt官网查看Qt授权的详细信息,也可以在安装Qt时查看LGPLv3等许可证的详细内容。

1.1.5 Qt Quick和QML介绍

1.1.5.1 背景介绍

  1. 近些年,计算机用户的使用模式发生了翻天覆地的变化:用户正逐步从固定的PC转换到便携式电脑和现代移动设备。传统的桌面系统正在被越来越多的触屏式智能手机和平板电脑所取代,经典的窗口界面时代已经成为过去。使用Qt的经典C++代码实现兼容不同大小屏幕的程序变得愈加困难。在这样的背景下,急需一种全新的界面开发工具适应现代化界面开发工作。
  2. 从2010年发布的Qt 4.7开始引入了Qt Quick技术。当时的定义为:一种高级用户界面技术,可以轻松创建供移动和嵌入式设备使用的动态触摸式界面和轻量级应用程序。由一个改进的Qt Creator IDE、新增的QML语言和新加入的QtDeclarative模块等3部分组成。
  3. Qt 5中废弃了QtDeclarative模块,将所有Qt Quick的内容划分为两个相对独立的模块:Qt QML和Qt Quick。因为Qt 5中的Qt Quick模块是2.x版本,所以也将其称为Qt Quick 2。

1.1.5.2 Qt 6中QML的概念

  1. QML(Qt Meta-Object Language,Qt元对象语言)是一种用于描述应用程序用户界面的声明式编程语言,它使用一些可视组件以及这些组件之间的交互和关联来描述用户界面。
  2. QML提供了一个具有高可读性的类似JSON的声明式语法,并提供了必要的JavaScript语句和动态属性绑定的支持。QML语言和引擎框架由Qt QML模块提供。

1.1.5.3 Qt 6中Qt Quick的概念

  1. 广义上来说,Qt Quick是Qt中基于QML语言的一种用户界面技术的统称,它是QML、JavaScript和C++等多种技术的集合。具体来说,在Qt框架中Qt Quick模块是QML类型和功能的标准库,包含了可视化类型、交互类型、动画、模型和视图、粒子特效和渲染特效等。
  2. 在QML应用程序中,可以通过一个简单的import语句来使用Qt Quick模块提供的所有功能。Qt QML模块提供了QML的引擎和语言基础,而Qt Quick模块提供了QML创建用户界面所需的所有基本类型。

1.2 如何选择Qt Widgets和Qt Quick

Qt 6中包含两种用户界面技术:Qt Quick和Qt Widgets。Qt Quick开发的界面流畅、动态,适合于触摸界面;而Qt Widgets用于创建复杂的桌面应用程序。与Qt Widgets使用C++进行开发不同,Qt Quick使用一种称为QML的声明式语言来构建用户界面,并使用JavaScript来实现逻辑。

1.2.1 两者的区别

在这里插入图片描述

1.2.2 如何选择两种技术

  1. 选择Qt Quick
    1)使用短周期原型化设计;
    2)在移动、嵌入式设备或MCU上运行;
    3)在触摸屏上工作;
    4)包含大量动画和图形效果。
  2. 选择Qt Widgets
    1)是大型标准工业应用;
    2)仅在桌面上运行;
    3)类似于本地Linux、macOS和Windows应用程序;
    4)需要很好地集成到底层平台中。

1.3 Qt 6的下载和安装

  1. 约束
    1)开发平台:Windows 10桌面平台。
    2)Qt 6.5.0版本,包含了Qt Creator 10.0 。
  2. 需要下载 Qt Online Installer 进行在线安装,可以到Qt官网(www.qt.io)下载,选择下载开源版(Downloads for open source users)。也可以直接到下载站点进行下载,地址:[https://download.qt.io/official_releases/online_installers/]。
    在这里插入图片描述
  3. 首先进行Qt账户登录,没有账户的,可以单击“注册”链接进行注册。
    在这里插入图片描述
  4. 同意Qt开源使用义务,可以单击链接查看相关许可证。
    在这里插入图片描述
  5. 是否同意在使用Qt Creator时发送统计数据,从而提高Qt 和Qt Creator。同意与否均不影响安装。
    在这里插入图片描述
  6. 指定Qt安装目录,其中不能包含中文。建议选择Custom installation 进行定制安装。
    在这里插入图片描述
  7. 可以直接安装最新版本。如果要安装指定版本,可以勾选Archive并单击“筛选”按钮。然后选择Qt 6.5.0中的组件。(下载程序中的MinGW表明该版本Qt使用了MinGW作为编译器。MinGW即Minimalist GNU For Windows,是将GNU开发工具移植到Win32平台下的产物,是一套Windows上的GNU工具集,用其开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行。更多内容可查看[https://www.mingw-w64.org]。在Windows系统中还可以使用MSVC版本Qt,需要使用Visual C++作为编译器。

    在这里插入图片描述
  8. 这里可以查看许可协议原文。直接勾选同意,然后按照默认设置完成安装即可。
    在这里插入图片描述

1.4 Qt Creator开发环境简介

Qt Creator是一个跨平台的、完整的Qt集成开发环境,其中包括了C++ 和QML代码编辑器、项目和生成管理工具、集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览工具等。

1.4.1 Qt Creator的特色

  1. 支持多种系统平台:可以在Windows、Linux和macOS桌面操作系统上运行,编译构建桌面、移动和嵌入式平台应用。
  2. 强大的代码编辑器:支持C ++、QML、JavaScript、Python等多种语言编写代码,具备代码补全、语法突出显示等功能。
  3. 简明的向导和丰富的示例:通过向导可以轻松创建项目;借助大量演示程序、代码示例和教程,可以让使用者更快入门。
  4. 所见即所得的UI设计工具:Qt设计师可以完成Qt Widgets设计和构建图形用户界面;Qt Quick设计师可以快速设计和构建Qt Quick应用程序和组件。
  5. 好用的帮助系统:集成Qt助手,实现了上下文相关的帮助系统。格式清晰内容详尽的帮助文档可以让使用者快速上手。
  6. 快速完成国际化:通过集成Qt语言家,可以方便快捷地将Qt C++和Qt Quick应用程序翻译成本地语言。
  7. 方便的项目和版本管理:无论导入现有项目,或是从头开始创建一个项目,Qt Creator都能生成所有必要文件。
  8. 丰富的调试和性能分析:集成调试器和性能分析器,支持设置断点、单步调试和远程调试等功能。
  9. 支持多种版本控制:集成了大多数流行的版本控制系统,包括Git、Subversion、Perforce和Mercurial等。

1.4.2 Qt Creator界面介绍

Qt Creator界面主要由中心的主窗口区和以下几部分组成:

  1. 菜单栏:这里有9个菜单选项,包含了常用的功能菜单。
    1)文件菜单。其中包含了新建、打开和关闭项目和文件、打印文件和退出等基本功能菜单。
    2)编辑菜单。这里有撤销、剪切、复制、查找和选择编码等常用功能菜单,在高级菜单中还有标示空白符、折叠代码、改变字体大小和使用vim风格编辑等功能菜单。
    3)视图菜单。包含控制侧边栏和输出窗口显示等相关菜单。
    4)构建菜单。包含构建和运行项目等相关的菜单。
    5)调试菜单。包含调试程序等相关的功能菜单。
    6)分析菜单。包含QML分析器、Valgrind内存和功能分析器等相关菜单。
    7)工具菜单。这里提供了快速定位菜单、版本控制工具菜单和外部工具菜单等。这里的选项菜单中包含了Qt Creator各个方面的设置选项:环境设置、文本编辑器设置、帮助设置、构建和运行设置、调试器设置和版本控制设置等。
    8)控件菜单。这里包含了设置全屏显示、分栏和新窗口打开文件等一些菜单。
    9)帮助菜单。包含Qt帮助、Qt Creator版本信息、报告bug和插件管理等菜单。
  2. 模式选择器:Qt Creator包含欢迎、编辑、设计、调试、项目和帮助6个模式,各个模式完成不同的功能,也可以使用快捷键来更换模式,它们对应的快捷键依次是Ctrl + 数字1~6。
    1)欢迎模式。这里主要提供了一些功能的快捷入口,如打开帮助教程、打开示例程序、打开项目、新建项目、快速打开以前的项目和会话、联网查看Qt官方论坛和博客等。
    2)编辑模式。这里主要用来查看和编辑程序代码,管理项目文件。也可以在“工具→选项”菜单项中对编辑器进行设置。
    3)设计模式。这里整合了Qt 设计师的功能。可以在这里设计图形界面,进行部件属性设置、信号和槽设置、布局设置等操作。可以在“工具→选项”菜单项中对设计师进行设置。
    4)调试模式。支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程等查看窗口。可以在“工具→选项”菜单项中设置调试器的相关选项。
    5)项目模式。包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系等页面。也可以在“工具→选项”菜单项中对项目进行设置。
    6)帮助模式。在帮助模式中将Qt助手整合了进来,包含目录、索引、查找和书签等几个导航模式。可以在“工具→选项”菜单中对帮助进行相关设置。
  3. 构建套件选择器:包含了目标选择器、运行按钮、调试按钮和构建按钮4个图标。目标选择器用来选择要构建哪个项目,使用哪个Qt库,这对于多个Qt库的项目很有用。这里还可以选择编译项目的debug版本或是release版本。运行按钮可以实现项目的构建和运行;调试按钮可以进入调试模式,开始调试程序;构建按钮完成项目的构建。
  4. 定位器:在Qt Creator中可以使用定位器来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。可以在“工具→选项”菜单项中设置定位器的相关选项。
  5. 输出窗口:这里包含了问题、搜索结果、应用程序输出、编译输出、QML Debugger Console、概要信息、版本控制、测试结果等8个选项,它们分别对应一个输出窗口,相应的快捷键依次是Alt + 数字1~8。问题窗口显示程序编译时的错误和警告信息,搜索结果窗口显示执行了搜索操作后的结果信息,应用程序输出窗口显示在应用程序运行过程中输出的所有信息,编译输出窗口显示程序编译过程输出的相关信息,版本控制窗口显示版本控制的相关输出信息。
    在这里插入图片描述

1.4.3 将Qt Creator与Qt库进行关联

选择“工具→选项”菜单项,然后选择“Kits”项。可以看到构建套件中已经自动检测到了Qt版本、编译器和调试器。如果以后需要添加其他版本的Qt,可以在这里先添加编译器,然后添加Qt版本,最后添加构建套件。
在这里插入图片描述

1.5 运行一个示例程序

在欢迎界面提供的示例程序几乎涉及了Qt支持的所有功能,还可以在搜索栏进行关键字查找。

1.5.1 运行Qt Widgets示例

  1. 在欢迎模式查看示例界面,输入widgets关键字可以查看所有相关示例。
    在这里插入图片描述
  2. 单击选择一个示例程序,这时会跳转到项目模式进行套件选择,因为这里现在只有一个Desktop Qt 6.5.0 MinGW 64-bit构建套件,所以直接单击Configure Project按钮即可。
    在这里插入图片描述
  3. 运行一个示例程序,还会自动打开该示例的帮助文档,可以查看示例的介绍和编写过程。
    在这里插入图片描述
  4. 打开项目会默认进入编辑模式,可以在编辑器左上角的项目树形视图中查看该示例的源代码。
    在这里插入图片描述
  5. 单击左下角的运行按钮或者按下Ctrl + R快捷键,则程序开始编译运行,在下面的“编译输出”和“应用程序输出”窗口会显示程序的编译运行信息。
    在这里插入图片描述
  6. 关闭项目:可以通过在项目目录上右击,在弹出的级联菜单中选择“关闭项目”菜单项或者通过“文件→Close Project”菜单项。
    在这里插入图片描述
    在这里插入图片描述

1.5.2 运行Qt Quick示例

在搜索框中输入quick关键字,然后选择一个比较感兴趣的示例,比如Coffee Machine程序。在编辑模式可以先查看该示例的源代码,以.qml为后缀的文件就是QML文件。
在这里插入图片描述

1.6 帮助模式

初学一个软件,无法马上掌握其全部功能,而且可能对某些功能很不理解,这时软件的帮助文档就很有用了,学习Qt也是如此。虽然Qt的帮助文档目前还是全英文的,但是我们必须要掌握它,毕竟这才是原生的东西,而网上的一些中文版本是广大爱好者翻译的,效果差强人意,再说,如果要深入学习,以后接触到的也以英文文档居多。按下Ctrl+6组合键(当然也可以直接单击“帮助”图标)进入帮助模式。在左上方的目录栏中单击Qt 6.5.0 Reference Documentation可以打开Qt参考文档页面。
在这里插入图片描述

  1. 目录。打开帮助模式时默认是目录视图,这里罗列了Qt自带的一些文档教程,基本涉及了Qt所有常用的功能。
    在这里插入图片描述
  2. 索引。通过关键字进行索引,快速查看所有相关内容。
    在这里插入图片描述
  3. 查找。输入关键字进行全文档检索,就是在整个文档的所有文章中进行查找。
    在这里插入图片描述
  4. 书签。在查看帮助时可能想为某一页面添加书签,以便以后再看,按下快捷键Ctrl+M或者单击界面上方边栏里的图标,可以添加书签,在这里可以查看所有书签。
    在这里插入图片描述
    上下文相关帮助:按下F1快速打开帮助文档。
    在这里插入图片描述
    在编辑模式编写代码时,将鼠标指针放到类型或者函数上会弹出工具提示,然后按下F1键就可以在编辑器右侧快速打开其帮助文档,再次按下F1键或者按下上方Open in Help Mode按钮都可以在帮助模式打开该文档。

1.7 Qt工具简介

Qt安装好以后,会默认安装几个实用的工具,分别是Qt Assistant(Qt助手)、Qt Designer(Qt设计师)、Qt Linguist(Qt语言家)。可以从开始菜单启动它们,也可以在安装目录下找到它们,例如:C:\Qt\6.5.0\mingw_64\bin。

1.7.1 Qt Assistant

Qt Assistant是可配置且可重新发布的文档阅读器,可以方便地进行定制,并与Qt应用程序一起进行发布。Qt Assistant已经被整合进Qt Creator,就是前面介绍的Qt帮助。它的功能有:

  1. 定制Qt Assistant并与应用程序一起重新发布。
  2. 快速查找关键词、全文本搜索、生成索引和书签。
  3. 同时为多个帮助文档集合建立索引并进行搜索。
  4. 在本地存放文档或在应用程序中提供在线帮助。
    在这里插入图片描述

1.7.2 Qt Designer

Qt Designer是强大的跨平台GUI布局和格式构建器,由于使用了与应用程序中将要使用的相同的部件,可以使用屏幕上的格式快速设计、创建部件以及对话框。功能和优势有:
1)使用拖放功能快速设计用户界面。
2)定制部件或从标准部件库中选择部件。
3)以本地外观快速预览格式。
4)通过界面原型生成C++或Java代码。
5)与Visual Studio或Eclipse配合使用。
6)使用Qt信号和槽机制构建功能齐全的用户界面。
7)同时为多个帮助文档集合建立索引并进行搜索。
8)在本地存放文档或在应用程序中提供在线帮助。
在这里插入图片描述

1.7.3 Qt Linguist

Qt Linguist提供了一套加速应用程序翻译和国际化的工具。Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统。主要功能有:
1)收集所有UI文本,并通过简单的应用程序提供给翻译人员。
2)语言和字体感知外观。
3)通过智能的合并工具快速为现有应用程序增加新的语言。
4)Unicode 编码支持世界上大多数字母。
5)运行时可切换从左向右或从右向左的语言。
6)在一个文档中混合多种语言。
在这里插入图片描述

1.7.4 Qt Design Studio

Qt Design Studio是一个可视化的用户界面UI设计构成工具,设计师可以通过该工具将设计的2D或3D界面直接转换为QML代码。功能和特色有:
1)轻松融合2D和3D。支持所有主流的3D创作工具。
2)可以利用现成组件。还可以直接在工具中创建和编辑粒子效果。
3)可以通过真实硬件快速迭代。将设计快速转换为交互式原型制作,并在目标硬件上验证、迭代。
4)自动化生成代码。可以为设计生成功能完善的代码,开发者不必编写任何多余的代码。
在这里插入图片描述

http://www.dtcms.com/a/601429.html

相关文章:

  • JDK 25 重大兼容性 Bug
  • MyBatis多表联查返回List仅一条数据?主键冲突BUG排查与解决
  • c 做网站方便吗手机企业wap网站
  • el-table有固定列时样式bug
  • Vue项目中 安装及使用Sass(scss)
  • 珠海本地网站设计公司什么网站可以发布信息
  • UEFI+GPT平台一键安装Windows方法
  • GPT‑5 全面解析与开发者接入指南
  • 站优云seo优化页面模板这样选
  • dism++功能实操备份与还原
  • 动态型网站建设哪里便宜app开发需要用到哪些工具
  • 网站建设的什么是网站建设的第一阶段佛山市房产信息网
  • React 18
  • CVPR 2025|电子科大提出渐进聚焦Transformer:显著降低超分辨率计算开销
  • CTFHub Web进阶-Linux:动态装载
  • Nginx域名与SSL证书配置完整流程
  • 美食网站要怎么做自己做相册的网站
  • 全国 网站备案 数量电子设计工程官网
  • 一、UDP以太网帧格式
  • 网络协议设计原则简介和资料推荐
  • 有哪些程序网站品牌和商标的区别
  • C语言编译器选择指南 | 初学者实用教程
  • 小智机器人MCP
  • 对于给不良网站发律师函如何做收银系统哪个软件好
  • 网站管理工作总结安阳县事业单位招聘2021
  • RK-Android11-修改系统的鼠标光标
  • vs2022 IDE扩展无法卸载/VSI 插件卸载及实例清理
  • 华为OD机试 双机位A卷 - 智能驾驶 (JAVA Python C++ JS GO)
  • 广州网站制作实力乐云seo怎么提高网站的流量
  • 开源工具 yt-dlp 超简易上手版