[Development] HEADS UP: Changes in QStyle subclasses

Nurmi J-P jpnurmi at digia.com
Sat Nov 24 12:09:26 CET 2012


Hi all,

Thanks to QStyleFactory and QProxyStyle, it is possible to instantiate and customize any available style. This is not limited to the built-in styles in QtWidgets, but also works fine for any style plugin since it nicely avoids the build time dependency to the corresponding style implementation.

When it comes to the actual style implementations, we have quite a few refactoring ideas on the table. These ideas include class renames, possible merges and inheritance hierarchy changes. Not to mention the possibility of later on pluginizing certain styles to avoid loads of dynamic function resolving. These ideas are not feasible to implement in time for Qt 5.0, and for compatibility reasons cannot be done later if the style implementations remain in the public API.

Hence we would like to take this opportunity to hide the following QStyle subclasses from the public API in Qt 5.0:
- QFusionStyle
- QGtkStyle
- QMacStyle
- QWindowsCEStyle
- QWindowsMobileStyle
- QWindowsStyle
- QWindowsVistaStyle
- QWindowsXPStyle

Notice that QCommonStyle will stay public, providing a convenient base for full custom style implementations. We do also realize that QWindowsStyle has been a commonly used base class for custom styles. To address that, we have recently promoted some generic styling code from QWindowsStyle to QCommonStyle, and changed QFusionStyle, QGtkStyle and QMacStyle to inherit QCommonStyle instead. We would like to invite anyone interested in custom styles to give it a try and let us know if any other parts should be promoted too.

--
J-P Nurmi


More information about the Development mailing list