简述

Qt5.7发布了,新特性如下。

新特性

C++11 Support Required from the compiler

Qt has enabled usage of C++11 in Qt applications for a long time, but with Qt 5.7 we are also enabling use of C++11 in the Qt modules. Therefore Qt 5.7 requires C++11 support from the compiler, and has removed support from older compilers not providing adequate C++11 support.

New Features (within existing modules)

  • Qt Core

    • Added qAsConst function to help using non-const Qt containers in C++11 range for loops
    • Qt event dispatchers use the poll() function on Unix now, making it possible for applications to have file descriptors > 1024
    • Added the ability to convert a floating point to its shortest, exact string form, without having to pre-calculate how many digits that is; QVariant uses this
    • Many clean-ups related to C++11, including using std::atomic as backend for QAtomic classes and adding QTypeInfo for char16_t and char32_t
    • QIODevice now supports multistreaming
    • QPluginLoader now works even if QT_NO_LIBRARY is set (e.g., linking against a static libc)
  • Qt GUI

    • QImage smooth scale optimized for NEON.
    • Optimized the OpenGL function wrappers for speed and code size. QtGui library size has been significantly reduced due to a massive reduction in symbols.
    • QIcon::fromTheme can now use GTK+ icon theme caches for faster icon lookup
  • Qt Widgets

    • QTabBar now delegates placement of tab scroll buttons to the style.
    • Qt Style Sheets can now optionally let widgets inherit font and palette from their parents.
  • Qt WebEngine

    • Based on Chromium 49
    • Drag’n’Drop
    • Printing to PDF
    • Audio played in tab notification.
    • Support for DRM-protected HTML5 video using Widevine pepper plugin
    • API for evaluating javascript or installing qwebchannel in secure isolated javascript worlds
    • Data to make better custom context menus
    • Compile time switch for AppStore compatibility on OS X
  • Qt QML

    • Added JIT support for WinRT on x86 and x64.
    • Enabled JIT for 64-bit ARM Linux platforms.
    • All debug services now work with QJSEngine rather than QQmlEngine, which allows for non-QML JavaScript debugging or profiling.
    • The JavaScript debug service now supports debugging of multiple QJSEngine instances at the same time.
    • The profiler service can generate much larger traces without running out of memory, and will take much less time to do so now.
    • Custom connectors for debugging and profiling can be loaded with QQmlDebuggingEnabler::startDebugConnector() now.
    • The JavaScript debug service can now evaluate expressions without the QML engine being paused in a breakpoint.
  • Qt Quick

    • The inspector service now supports all subclasses of QQuickWindow, which makes Qt Creator’s inspection feature useful.
  • Embedded platforms

    • Added support for NVIDIA DRIVE CX boards (Tegra X1, AArch64)
    • Added support for the Raspberry Pi 3 (32-bit mode)
    • Added support for NXP i.MX7-based devices (no GPU; uses linuxfb and the Qt Quick 2D Renderer)
    • Improved theming support with eglfs
  • Desktop platforms

    • X11: QMenuBar uses the unified D-Bus AppMenu menubar when the desktop environment supports it (e.g. Ubuntu Unity)
  • Mobile platforms

    • Android: Qt can now be used to easily create Android Services.
  • Qt Canvas 3D

    • New version of three.js
  • Qt NFC

    • API ported to Android.
  • Qt Multimedia

    • Added support for tvOS.
    • Extended QML playlist API.
  • Qt Bluetooth

    • Technical preview for Qt Bluetooth Low Energy peripheral role feature (Bluez only)
  • Qt Sensors

    • Added iio-sensor-proxy backend for Linux. It provides light, orientation, and compass sensors.

New Modules

  • Qt 3D

    • Support for Compute Shaders on supported hardware
    • Support for loading multi-image DDS and KTX textures including cubemaps, mip chains, array textures
    • Improved support for compressed texture formats
    • Render surface made explicit - will later allow for multiple renders of the same scene to different surfaces and other use cases
    • Extended Input API and support for device plugins
    • Picking support improved
  • Qt Quick Controls 2

    • A new light-weight set of embedded and mobile oriented controls
    • Based on a flexible template system that enables rapid development of entire custom styles and user experiences
    • Built-in styles:
    • Default style - a simple and minimal all-round style that offers the maximum performance
    • Material style - a style based on the Google Material Design Guidelines
    • Universal style - a style based on the Microsoft Universal Design Guidelines
    • Can be mixed with Qt Quick Controls 1.0, but the APIs are not compatible
  • Qt Charts

    • Previously commercial-only Qt Charts module is now included in Qt under also GPLv3 license for open source users
  • Qt Data Visualization

    • Previously commercial-only Qt Data Visualization module is now included in Qt under also GPLv3 license for open source users
  • Qt Virtual Keyboard

    • Previously commercial-only Qt Virtual Keyboard module is now included in Qt under also GPLv3 license for open source users
  • Qt Purchasing

    • Previously commercial-only Qt Purchasing module is now included in Qt under also LGPLv3 and GPLv3 license for open source users
  • Qt Quick 2D Renderer

    • Previously commercial-only Qt Quick 2D Renderer module is now included in Qt under also GPLv3 license for open source users

Technology Preview Modules

  • Qt Wayland Compositor

    • Pure QML API
    • Improved C++ API with added convenience
    • New convenient API for making extensions and using them from both QML and C++
  • Qt SCXML

    • Completely new module for C++ and QML
    • Static and runtime integration of SCXML models into Qt code
  • Qt Gamepad

    • New module to process input from gamepads in C++ and QML applications.
    • Supports Windows (XInput), Linux (evdev), Android, iOS.
  • Qt Serial Bus

    • New module for C++
    • Supports Modbus and CAN bus

Deprecated Modules

The following modules are part of Qt 5.6 release, but deprecated and considered for removal in subsequent releases of Qt:

  • Qt Script

Removed Modules

With Qt 5.7 the following modules are no longer part of the final release packages:

  • Qt Enginio

Configurations

  • Qt 5.7 has deprecated configurations that do not provide adequate C++11 support. For details, please see Qt 5.7 Tools and Versions in the wiki.
  • Mobile platforms: Minimum required versions upgraded to iOS 7 and Android 4.1

安装配置

关于Qt5.7的安装配置,请参考之前所写环境搭建相关的资料:

安装过程中,新添加的模块(如:Qt Charts)默认不被安装,请自行勾选(我一般会全选)。

使用

打开Creator,进入:欢迎 -> 示例,我们可以运行新添加的一些模块示例:

Qt Charts效果也很棒,效果如下:

效果棒棒哒,看起来不比QWT等其它图形库逊色,而且支持QML,后期有时间好好研究一番。

更多参考

Qt5.7新特性的更多相关文章

  1. QT5.9 新特性与版本回顾

    原文链接: http://blog.qt.io/blog/2017/05/31/qt-5-9-released 翻译内容如下,采用的是第三方某在线翻译软件,所以有些地方不是太精确,纵然大吉做了一定的调 ...

  2. Qt5 新特性

    Qt 5 已经临近发布,其最大的特点就是模块化.将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加.删除各个功能类.文本简单介绍 Qt5 的特性,其具体内容来自 Qt5 官方 ...

  3. Qt5 中对 C++11 一些新特性的封装

    在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名 ...

  4. 【Qt开发】Qt5 中对 C++11 一些新特性的封装

    C++11 是现在的 C++ 标准的名称,C++11 为 C++ 语言带来很多新特性. 而 Qt 4.8 是 Qt 首个在其 API 中开始使用一些新的 C++11 特性的版本,我之前写过一篇博文:C ...

  5. SQL Server 2014 新特性——内存数据库

    SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...

  6. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  7. [干货来袭]C#6.0新特性

    微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...

  8. CSS3新特性应用之结构与布局

    一.自适应内部元素 利用width的新特性min-content实现 width新特性值介绍: fill-available,自动填充盒子模型中剩余的宽度,包含margin.padding.borde ...

  9. 【译】Meteor 新手教程:在排行榜上添加新特性

    原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...

随机推荐

  1. promise的原理

    promise的原理 一旦状态改变,就不会再变,任何时候都可以得到这个结果.Promise 对象的状态改变,只有两种可能:从 pending 变为 fulfilled 和从 pending 变为 re ...

  2. visual studio 2015将已有项目添加到码云(gitee)

    visual studio 2015将已有项目添加到码云的步骤包括:gitee新建项目.清空项目及VS发布项目 1.gitee新建项目 2.清空项目 清空项目则会将vs项目的master分支发布到gi ...

  3. 【codeforces 757E】Bash Plays with Functions

    [题目链接]:http://codeforces.com/problemset/problem/757/E [题意] 给你q个询问; 每个询问包含r和n; 让你输出f[r][n]; 这里f[0][n] ...

  4. Qt程序打包成exe可执行文件

    很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题.现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文 ...

  5. Cocos2d-x使用Luajit将Lua脚本编译为bytecode,实现加密 更新

    项目要求对lua脚本进行加密,查了一下相关的资料 ,得知lua本身能够使用luac将脚本编译为字节码(bytecode)从而实现加密,试了一下,确实可行. 以下是使用原生的lua解释器编译字节码: 1 ...

  6. AJAX核心--XMLHttpRequest五步法

    引言: AJAX=异步Javascript + XML,AJAX是一种用于创建高速动态网页的技术. 开门见山: 解读:AJAX使用XHTML和CSS为网页表示.DOM动态显示和交互,XML进行数据交换 ...

  7. Bmob移动后端云服务平台--Android从零開始--(二)android高速入门

    Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...

  8. CoreData的介绍和使用

    一.CoreData是什么? CoreData是iOS SDK里的一个很强大的框架,允许程序员以面向对象的方式存储和管理数据.使用CoreData框架,程序员可以轻松有效地通过面向对象的接口管理数据 ...

  9. POJ 1944 并查集(模拟)

    思路: 肯定是要枚举断点的..就看枚举完断点以后怎么处理了-- 1.用类似并查集的思想- f[x]=max(f[x],y)表示x和y相连(一定要注意取max,,,血的教训) 复杂度O(np) 2.猥琐 ...

  10. 【原创】Linux下的ngix服务器安装步骤

    1.首先下载ngix的源码linux版本[1.5.8版本] http://nginx.org/en/download.html 2.下载PCRE library,是安装ngix的必备包之一 [root ...