New Features in Qt 5.10: Difference between revisions
Jump to navigation
Jump to search
Allan Jensen (talk | contribs) No edit summary |
Allan Jensen (talk | contribs) (A few things spotted on API review) |
||
Line 10: | Line 10: | ||
** Explicitly little and big-endian integer types exposed (for instance qint16_le, quint32_be) for machine-independent data-type parsing. | ** Explicitly little and big-endian integer types exposed (for instance qint16_le, quint32_be) for machine-independent data-type parsing. | ||
** Added QRandomGenerator providing a simple API for high-quality seed-less random numbers. | ** Added QRandomGenerator providing a simple API for high-quality seed-less random numbers. | ||
** Added accessors for metadata time fields of files to QFileInfo. | |||
** Added QSemaphoreReleaser a RAII-style class for QSemaphore. | |||
** Added QKeyValueIterator for more efficient iteration over keys of an associative container | |||
* Qt GUI | * Qt GUI | ||
** Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow | ** Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow |
Revision as of 14:29, 20 September 2017
Note: This page is work in progress and should not be considered as final list of Qt 5.10 features before the beta release.
New Features (within existing modules)
- Qt Core
- Added rudimentary implementation of QStringView. It is missing some (important) const-QString functions, but is fully functional as an interface type. To be completed for Qt 5.11.
- Added many more functions to QLatin1String, too, co-evolving QLatin1String as the const char*-Latin-1-version of QStringView.
- Added QIODevice::skip() to improve performance in read operations.
- Explicitly little and big-endian integer types exposed (for instance qint16_le, quint32_be) for machine-independent data-type parsing.
- Added QRandomGenerator providing a simple API for high-quality seed-less random numbers.
- Added accessors for metadata time fields of files to QFileInfo.
- Added QSemaphoreReleaser a RAII-style class for QSemaphore.
- Added QKeyValueIterator for more efficient iteration over keys of an associative container
- Qt GUI
- Added cross-platform Vulkan enablers for Windows, Linux (xcb) and Android (level 23+): QVulkanInstance, QWindow with type VulkanSurface, and QVulkanWindow
- Added new flags and functions to QSurfaceFormat and QOpenGLWidget to request sRGB-capable default/backing framebuffers
- The OpenGL ES 3.2 API is now exposed in a cross-platform manner via QOpenGLExtraFunctions.
- QImages can now use more than 2GByte of pixel data.
- Added QFont::PreferNoShaping style strategy.
- Qt Widgets
- QWidget::createWindowContainer() is now functional on Android
- QOpenGLWidget is now usable for rendering and reading back (grabbing) offscreen content.
- Added AA_DisableWindowContextHelpButton attribute that prevents the automatic" What's this" button on dialogs on Windows
- Added tabStopDistance property in QTextOption, QTextEdit and QPlainTextEdit
- Added selectionEnd(), selectionLength() to QLineEdit, complementing selectionStart()
- Added setDoubleStep to QInputDialog, to enable changing of the step amount for getDouble()
- Added isPersistentEditorOpen() to QAbstractItemView, QTreeWidget, QTableWidget and QListWidget
- Added new style hint: SH_TitleBar_ShowToolTipsOnButtons
- Added support for specifying custom internal texture formats in QOpenGLWidget
- QDockWidget acquired the ability to be dropped together side by side
- Qt Network
- OpenSSL 1.1 back-end.
- Persistent store of HSTS policies in QNAM (QSettings-based).
- Implemented the h2c procotol upgrade used by non-SSL HTTP/2.
- Qt Quick
- Added a shapes plugin, providing a Shape type under QtQuick.Shapes 1.0. This allows adding stroked and filled paths into Qt Quick scenes. Such shapes are rendered either by generating geometry or by using the GL_NV_path_rendering extension.
- Added the Qt.labs.handlers plugin, providing TapHandler, PinchHandler and DragHandler. These are the beginnings of the Pointer Handlers which we have been talking about for some time: lightweight objects for handling events from the mouse or the touchscreen in a device-agnostic way.
- QQuickItem layers can now request to be backed by multisample framebuffers via the property layer.samples
- Added font.kerning and font.preferShaping properties for advanced control over the font shaping subsystem.
- Added advance property to Text to retrieve the typographical advance width.
- Added Image element support for direct loading of ETC1 and ETC2 compressed textures from .pkm files. (on platforms where ETC1/2 are supported)
- Qt Quick Controls 2
- Introduced new QML types: Action, ActionGroup, MenuBar
- Introduced new styles:
- the Fusion style offers a platform agnostic desktop-oriented look'n'feel
- the Imagine style is based on image assets that can be provided using a predefined naming convention
- Added support for:
- actions and actions in buttons, delegates, and menus
- exclusive button groups
- nested menus, and cascading sub-menus
- wrapping spinboxes
- propagating palettes (only Fusion & Imagine styles for now, others coming later)
- specifying the default font and palette in qtquickcontrols2.conf
- preliminary support for mnemonics in MenuItem (only shortcut functionality, not yet visualized)
- Added new members:
- TabBar::index, tabBar, and position attached properties:
- Dialog::applied(), reset(), discarded(), and helpRequested() signals
- Dialog::standardButton() method
- StackView::empty property
- Menu::popup() and dismiss() methods
- Menu::actionAt(), addAction(), insertAction(), removeAction(), and takeAction() methods
- Menu::menuAt(), addMenu(), insertMenu(), removeMenu(), and takeMenu() methods
- Menu::count and currentIndex properties
- MenuItem::menu property
- Container::removeItem(Item) and takeItem(int) methods (TabBar and SwipeView)
- Popup::enabled, mirrored, and opened properties
- "horizontal" and "vertical" properties to all controls that had an "orientation" property: RangeSlider, Slider, ScrollBar, ScrollIndicator, SwipeView
- Other improvements:
- Added support for specifying a transition for StackView::clear()
- Made ApplicationWindow::activeFocusControl work with a plain Window
- Made background dimming for popups work without ApplicationWindow
- Made Material style DialogButtonBox use the Android button layout
- Made Default style Slider and RangeSlider visually indicate the progress/range
- Qt Graphical Effects
- The effects are now functional also in core profile OpenGL contexts.
- Qt WebEngine
- Updated to be based on Chromium 60
- Pause/resume added to download items
- Settings for blocking javascript focus
- Settings for hiding scrollbars
- More WebActions that used to be in QWebPage added to QWebEnginePage
- QWebEnginePage::download added for triggering downloads using QtWebEngine
- Qt Serial Bus
- Added local echo flag to QCanBusFrame to mark frames that are sent from the local system to the CAN bus.
- Qt Connectivity
- The UWP bluetooth and BLE backends can now be used on desktop Windows (>= 10) too.
- Qt Virtual Keyboard
- Added the following keyboard layouts: Hebrew, Serbian, Hungarian, Czech, Croatian, Bulgarian, Greek, Estonian, and Dutch.
- Added handwriting support for Farsi, Arabic, and CJK (Chinese/Japanese/Korean).
- Added new component (InputModeKey) for input mode switch.
- OpenWNN:
- Fixed crash when pressing the space after entering a smiley.
- Fixed and optimized OpenWNN engine
- Qt X11 Extras
- Added new peekEventQueue() API to peek into the XCB event queue. This enables porting certain Qt4-based applications to Qt5 (those using Xlib's event handling functions to peek into the X11 event queue).
- Emulator
- Support multiple screens
- Plugin support
- Device mockups are QML based
- Device Creation / Boot2Qt
- Device images updated to Yocto 2.3 (pyro)
New Modules
- Qt Network Authentication - Provides support for OAuth1 & OAuth2
- Qt Speech - Supports text-to-speech
Platform Changes
- Jira tracking for 5.10 changes:
Technology Preview Modules
- Qt Remote Objects (TP2) - A module that allows you to easily share QObject interfaces (Signals/Slots/Properties) between processes or devices.
- Qt WebGL Streaming Plugin - Stream applications to browsers over the network
Deprecated Modules
The following modules are part of Qt 5.10 release, but deprecated and considered for removal in subsequent releases of Qt:
- Qt Script
Configurations