Qt5.7新特性

  1. 云栖社区>
  2. 博客>
  3. 正文

Qt5.7新特性

潘志闻 2016-06-21 15:49:00 浏览864
展开阅读全文

简述

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,后期有时间好好研究一番。

更多参考

网友评论

登录后评论
0/500
评论
潘志闻
+ 关注