Qt5.7新特性
简述
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新特性的更多相关文章
- QT5.9 新特性与版本回顾
原文链接: http://blog.qt.io/blog/2017/05/31/qt-5-9-released 翻译内容如下,采用的是第三方某在线翻译软件,所以有些地方不是太精确,纵然大吉做了一定的调 ...
- Qt5 新特性
Qt 5 已经临近发布,其最大的特点就是模块化.将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加.删除各个功能类.文本简单介绍 Qt5 的特性,其具体内容来自 Qt5 官方 ...
- Qt5 中对 C++11 一些新特性的封装
在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名 ...
- 【Qt开发】Qt5 中对 C++11 一些新特性的封装
C++11 是现在的 C++ 标准的名称,C++11 为 C++ 语言带来很多新特性. 而 Qt 4.8 是 Qt 首个在其 API 中开始使用一些新的 C++11 特性的版本,我之前写过一篇博文:C ...
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
- [干货来袭]C#6.0新特性
微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...
- CSS3新特性应用之结构与布局
一.自适应内部元素 利用width的新特性min-content实现 width新特性值介绍: fill-available,自动填充盒子模型中剩余的宽度,包含margin.padding.borde ...
- 【译】Meteor 新手教程:在排行榜上添加新特性
原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...
随机推荐
- BZOJ 4864 [BJWC2017]神秘物质 (splay)
题目大意: 让你维护一个序列,支持: 1.合并两个相邻的数为一个新的数 2.在某个位置插入一个数 3.查询一个区间的任意子区间极差的最大值 4.查询一个区间的任意子区间极差的最小值 前两个操作可以用$ ...
- 七、利用frp 穿透到内网的http/https网站,实现对外开放
有域名的话使用域名,没有域名的话使用IP注意80端口是否被已经安装使用的nginx占用,若被占用,可以换成其他端口,比如8080,,或者利用nginx的反向代理实现frp服务端与nginx共用80端口 ...
- 升级ruby到2.0
本文部分内容转载,如侵犯个人利益请联系博客管理员及时删除,或留言之评论区 一.安装库 Yum install –y gcc* openssl* wget 二.安装ruby wget https://c ...
- a标签设置高度不生效问题
<a>是内联元素 必须设置成块级元素block 才能有width和height 不过你可以又定义display:block再定义成display:inline 以避免在IE6下产生BUG ...
- [luogu] P2354 [NOI2014]随机数生成器 (贪心)
Description Input 第1行包含5个整数,依次为 x_0,a,b,c,d ,描述小H采用的随机数生成算法所需的随机种子.第2行包含三个整数 N,M,Q ,表示小H希望生成一个1到 N×M ...
- SpringBoot 消费NSQ消息
使用监听器,来实现实时消费nsq的消息 一.目前spring boot中支持的事件类型如下 ApplicationFailedEvent:该事件为spring boot启动失败时的操作 Applica ...
- Jenkins学习总结(5)——免费DevOps开源工具简介
一:开发工具 1.版本控制系统 Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 2.代码托管平台 GitLab GitLab是一个利用Ruby on ...
- 创业笔记-Node.js入门之一个完整的基于Node.js的web应用
用例 我们来把目标设定得简单点,不过也要够实际才行: 用户可以通过浏览器使用我们的应用. 当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可 ...
- 远古守卫/cocos2d-x 源代码/塔防游戏/高仿王国保卫战
下载地址:spm=686.1000925.0.0.j3MZhz&id=550780702354" style="color:rgb(224,102,102)"&g ...
- 数据库之Case When
近期几天的工作本来组长是安排我用mindfocion画几个图,本来以为难点是这个控件的使用,可是开发的时候才发现由于数据量有点多,所以在开发的时候汇总这些信息倒是费了我许多的功夫,最后总结一下就是写了 ...