Qt
5.7不再兼容C++98,是一个全面体现C++11优势的版本,从底层实现到api设计,充分使用C++11特性,比如非常方便的auto和
lambda函数。由于Qt5.6是一个LTS版本,所以设计时向C++98靠拢,使用了少量的C++11特性。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
Qt Widgets
Qt WebEngine
Based on Chromium 49
Drag'n'Drop
Printing to PDF
Spellchecking
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
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.
Qt Quick
Embedded platforms
Desktop platforms
Mobile platforms
Qt Canvas 3D
Qt NFC
Qt Multimedia
Qt Bluetooth
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
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
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:
Can be mixed with Qt Quick Controls 1.0, but the APIs are not compatible
Qt Charts
Qt Data Visualization
Qt Virtual Keyboard
Qt Purchasing
Qt Quick 2D Renderer
Technology Preview Modules
Qt Wayland Compositor
Qt SCXML
Qt Gamepad
New module to process input from gamepads in C++ and QML applications.
Supports Windows (XInput), Linux (evdev), Android, iOS.
Qt Serial Bus
Deprecated Modules
The following modules are part of Qt 5.6 release, but deprecated and considered for removal in subsequent releases of Qt: Removed Modules
With Qt 5.7 the following modules are no longer part of the final release packages: 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 via qt |