• Qt快速入门之一:开始学习Qt 与Qt Creator


    Qt官方信息

    Qt官网:http://qt.digia.com/

    Qt开源官网:http://download.qt.io/archive/qt

    Qt最新版本下载:http://qt-project.org/downloads

    Qt所有版本下载:ftp://ftp.qt-project.org/qt/source/

    Qt Creator所有版本下载:ftp://ftp.qt-project.org/qtcreator/


    一、Qt 与 Qt Creator 简介

    Qt是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Creator 是全新的跨平台 Qt IDE,可单独使用,也可与 Qt 库和开发工具组成 一套完整的 SDK. 其中包括:高级 C++ 代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。

    二、Qt 的历史

    • 1996 年 Qt 上市
    • Qt 已成为数以万计商业和开源应用程序的基础
    • Qt 的软件授权机制具有经受市场检验的双重授权(开源与商业)模式
    • Qt Software 的前身为 Trolltech(奇趣科技)。 Trolltech (奇趣科技)始创于1994年
    • Trolltech (奇趣科技)于 2008 年6月被 Nokia 收购,加速了其跨平台开发战略
    • 2012 年 8 月芬兰IT业务供应商 Digia 全面收购诺基亚 Qt 业务及其技术

    三、Qt 功能与特性

    • 直观的 C++ 类库:模块化 Qt C++ 类库提供一套丰富的应用程序生成块 (block),包含了构建高级跨平台应用程序所需的全部功能。具有直观,易学、易用,生成好理解、易维护的代码等特点。
    • 跨桌面和嵌入式操作系统的移植性:使用 Qt,您只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码,可以说 Qt 无处不在(QtEverywhere) 。
    • 使用单一的源代码库定位多个操作系统;
    • 通过重新利用代码可将代码跨设备进行部署;
    • 无须考虑平台,可重新分配开发资源;
    • 代码不受担忧平台更改影响的长远考虑 ;
    • 使开发人员专注于构建软件的核心价值,而不是维护 API 。
    • 具有跨平台 IDE 的集成开发工具:Qt Creator 是专为满足 Qt 开发人员需求而量身定制的跨平台集成开发环境 (IDE)。Qt Creator 可在 Windows、Linux/X11 和 Mac OS X 桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台创建应用程序。
    • 在嵌入式系统上的高运行时间性能,占用资源少。

    四、Qt Creator 功能和特性

    • 复杂代码编辑器:Qt Creator 的高级代码编辑器支持编辑 C++ 和 QML (JavaScript)、上下文相关帮助、代码完成功能、本机代码转化及其他功能。
    • 版本控制:Qt Creator 汇集了最流行的版本控制系统,包括 Git、Subversion、Perforce、CVS 和 Mercurial。
    • 集成用户界面设计器:Qt Creator 提供了两个集成的可视化编辑器:用于通过 Qt widget 生成用户界面的 Qt Designer,以及用于通过 QML 语言开发动态用户界面的 Qt Quick Designer。
    • 项目和编译管理 :无论是导入现有项目还是创建一个全新项目,Qt Creator 都能生成所有必要的文件。包括对 cross-qmake 和 Cmake 的支持。
    • 桌面和移动平台:Qt Creator 支持在桌面系统和移动设备中编译和运行 Qt 应用程序。通过编译设置您可以在目标平台之间快速切换。

    五、Qt 类库

    模块化 Qt C++ 类库提供一套丰富的应用程序生成块(block),包含了生成高级跨平台应用程序所需的全部功能。

    1.先进的图形用户界面(GUI):Qt 为您在桌面与嵌入式平台上开发先进的 GUI 应用程序,带来所有需要的功能。Qt 使用所支持平台的本地化图形API,充分利用系统资源并给予应用程序本地化的界面。

    • 从按钮和对话框到树形视图与表格都具有完整的控件(窗体);
    • 自动缩放,字体、语言与屏幕定位识别布局引擎;
    • 支持抗锯齿、矢量变形以及可缩放矢量图形(SVG);
    • 具有样式 API 和窗体样式表,可完全自定义用户界面;
    • 支持嵌入式设备的硬件加速图形和多重显示功能。

    2.基于 OpenGL 与 OpenGL 的 3D 图形:OpenGL 是一个标准的图形库,用于构建跨平台和支持硬件加速的高性能可视化应用程序。虽然 OpenGL 完美支持 3D 图形,但却不支持创建应用程序用户界面。Qt 通过与 OpenGL 的紧密集成解决了这一难题。

    • 在您的应用程序中轻松加入 3D 图形;
    • 在嵌入式 Linux 与 Windows CE 平台上使用 OpenGL ES 和 OpenGL 绘画引擎;
    • 利用系统资源实现最佳图形性能;
    • 支持 Windows 平台上的 Direct3D。

    3.多线程:多线程编程是一个执行资源密集型操作而不会冻结应用程序用户界面的有效典范。Qt 的跨平台多线程功能简化了并行编程,另外它附加的同步功能可以更加轻松地利用多核架构。

    • 管理线程、数据和对象更加轻松;
    • 基于 Qt 的信号与槽,实现跨线程类型安全的对象间通讯;
    • 高端 API 可以编译多线程程序而无须使用底端基元。

    4.嵌入式设备的紧凑视窗系统:Qt 构建在标准的 API 基础上,用于具有轻量级 Window 系统的嵌入式 Linux 设备。基于 Qt 的应用程序直接写入 Linux 帧缓冲,解除了您对 X11 视窗系统的需求。

    • 减少内存消耗,内存占用更小;
    • 可以编译移除不常使用的组件与功能
    • 可以利用硬件加速图形
    • 在桌面系统上的虚拟帧缓冲可用于嵌入式开发与调试。

    5.对象间通讯:在开发用户图形界面中,一个常见的、重复发生系统崩溃与问题的症结根源是如何在不同组件之间进行通信。对于该问题,Qt 的解决方案是信号与槽机制,即执行 Observer 设计模式。我们可以简单理解为当特殊事件发生的时候,信号就被发出了,一个槽就是一个函数,被称作特定信号的响应。

    • 信号与槽机制是类型安全的(type safe);
    • 任意信号都可以连接任意或多个槽,或跨多个线程;
    • 简化真正的组件编程。

    6.2D 图形:Qt 给您提供一个功能强大的 2D 图形画布,用以管理和集成大量的图形元素。

    • 高精度可视化大量元素;
    • 将窗体互动嵌入至图形场景中;
    • 支持缩放、旋转、动画。

    7.多媒体框架:Qt 使用 Phonon 多媒体框架为众多的多媒体格式提供跨桌面与嵌入式操作系统的回放功能。Phonon 可以轻松将音频与视频回放功能加入到 Qt 应用程序当中,并且在每个目标平台上提供多媒体格式与框架。

    • 从本地文件读取媒体或读取网络上的流媒体;
    • 提取 Mac 上的 QuickTime ,Windows 上的DirectShow 以及 Linux 上的 Gstreamer。

    8.WebKit 集成:Qt WebKit 集成,即 Qt 集成了 WebKit 功能,WebKit 是 KDE 项目下基于 KHTML 的开放源 web 浏览器引擎。目前 Apple,Google 与 Nokia 等公司使用 Qt WebKit 集成,将 web 与本地内容和服务整合在单一的富应用程序当中。

    • 快速创建整合实时 web 内容与服务的应用程序;
    • 使用集成在本地代码中的 HTML 与 Java Script;
    • 完全控制跨平台的浏览器环境。

    9.网络连接:Qt 让您网络编程更简单,并支持跨平台网络编程。

    • 完整的客户/服务器插口提取;
    • 支持 HTTP,FTP,DNS 与异步 HTTP 1.1;
    • 无论 HTML 和 XML 或图象与媒体文件,它都可以存取所有类型的数据。

    10.XML:Qt 为XML 文件以及SAX 和 DOM 协议的C++实现,提供了一个流媒体文件读写器。同时 Qt 还包含了 XQuery – 一个简单的类似 SQL 的查询语言,用于解析 XML 文件来选择和聚合所需要的 XML 元素,并且将它们转换成 XML 输出或其它格式的输出。

    • 仅需少数几行代码便可实现先进的 XML 查询;
    • 完全支持 XQuery 1.0 和 XPath 2.0;
    • 在您自己的应用程序中从 XML 查询、抽取和转换数据。

    11.脚本引擎:Qt 包含一个完全集成 ECMA 标准的脚本引擎。 QtScript 提供 QObject 集成,把 Qt 的信号与槽机制整合成脚本,并且实现了 C++ 与脚本的集成。

    • 基于 ECMA 标准的脚本语言(ECMAScript 3 是 JavaScript1.5 的基础);
    • 为简化的对象间通讯使用 Qt 的信号与槽机制;
    • 开创新的契机将脚本与您的 Qt 应用程序相集成。

    12.数据库:Qt 帮助您将数据库与您的Qt应用程序无缝集成。Qt 支持所有主要的数据驱动,并可让您将 SQL 发送到数据库服务器,或者让 Qt SQL 类自动生成 SQL 查询。

    • 支持所有主要的数据库驱动;
    • 以多种视图或数据识别表单方式显示数据。

    六、Qt Quick 介绍

    Qt Quick 是在 Qt4.7 中被引进的一项技术。Qt Quick 是一种高级用户界面技术,开发人员和设计人员可用它协同创建动画触摸式用户界面和应用程序。它由三部分构成:1.QML:像 JavaScript 一样的声明式语言;2. Qt Creator:在 Qt IDE 中的直观工具;3. Qt Declarative:强大的 C++ 模块。

    1.主要组成:
    QML:基于 JavaScript 的直观语言 :

    • QML 是一种简便易用的语言,开发人员与用户界面设计人员无需任何 C++ 知识,即可用其描绘出用户界面的外观和功能。
    • 面向开发人员和设计人员的共享工具:Qt Creator IDE 2.1 版将集成一套开发人员与用户界面设计人员可共享,用以创建和实施 Qt Quick 项目的通用工具。
    • 通过 C++ 推动 QML 应用程序:在 Qt 库中的全新 Declarative 模块支持生成动态可定制的用户界面,以及通过 C++ 拓展 QML 应用程序。

    2.功能特点:

    • 快速开发动画式流畅多变的用户界面:通过直观的 QML 语言和一套丰富的 QMLElements—UI 和行为生成块——您可以快速创建出令人印象深刻的用户界面,比您想象的还要快。
    • 无需 C++ 知识:如果您具有 JavaScript 的经验或掌握基本的网络技术 (如 HTML 和 CSS),您就可以通过 QML 取得非常不错的成果。
    • 瞄准数以百万计的触摸屏设备:使用 Qt Quick,您可以为数以百万计的 Symbian 和 MeeGo 设备生成应用程序,或为各种类型的触摸屏消费类电子设备创建用户界面。

    3.应用领域:

    • 汽车信息娱乐系统 UI:Cybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI - 并取得了令人满意的结果。
    • 社交媒体电视:mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序创建 UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。
    • 联网汽车:Qt 的认证合作伙伴 Digia 很快学会了 Qt Quick 并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车 UI。

    Qt Widgets、QML、Qt Quick的区别,可以看这篇博客:Qt Widgets、QML、Qt Quick的区别


    参考:

    Qter开源社区


  • 相关阅读:
    19.2.8 [LeetCode 53] Maximum Subarray
    19.2.8 [LeetCode 52] N-Queens II
    19.2.8 [LeetCode 51] N-Queens
    19.2.7 [LeetCode 50] Pow(x, n)
    19.2.7 [LeetCode 49] Group Anagrams
    19.2.7 [LeetCode 48] Rotate Image
    19.2.7 [LeetCode 47] Permutations II
    19.2.7 [LeetCode 46] Permutations
    19.2.7 [LeetCode 45] Jump Game II
    19.2.4 [LeetCode 44] Wildcard Matching
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/10111079.html
Copyright © 2020-2023  润新知