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

    更多参考

  • 相关阅读:
    PS初步学习经验心得记录
    css第四天--复合选择器和样式三大特性
    css第三天--盒子模型
    html第二天--表单控件和表格
    css第二天--字体属性和文本属性
    vue计算属性(computed)
    ant-input的使用
    js-split() 方法
    设计转到前端开发
    $set
  • 原文地址:https://www.cnblogs.com/itrena/p/5938309.html
Copyright © 2020-2023  润新知