Projet

Général

Profil

Qt51 > Qt56

La nouvelle version de Qt5.6 est sortie le 16 Mars 2016.
Elle apporte son lot de nouveauté mais surtout la prise en charge des résolutions highdpi et c'est la première version LTS de Qt.
Mais il y a aussi des changements plus profonds, comme l'abandon de QWebkit et le support partiel de GCC sur Windows (mingw).
QWebkit est remplacé par QWebEngine.
Cependant, celui-ci n'est pas compatible mingw : si nous voulons utiliser les mêmes services fournis par le remplaçant de QWebkit dans nos applications, nous devons basculer la chaîne de compilation Windows vers MSVC.
Nous allons lister ici les plus et les moins et faire notre choix en conséquence.

La balance

Quelques liens utiles :
https://blogs.msdn.microsoft.com/somasegar/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015/
https://github.com/Microsoft
https://github.com/dotnet/roslyn
http://www.nextinpact.com/news/95864-visual-studio-2015-officiellement-disponible-avec-roslyn-cordova-c-6-0-et-net-4-6.htm
https://www.microsoft.com/fr-fr/download/details.aspx?id=48145

A remplir au fur et à mesure des trouvailles...
MinGW MSVC
+ Libre +/- Libre (à déterminer plus précisement)
+ Macro prépro compatible GCC linux - Nouvelles macros à définir (du type LINE, etc)
- Partiellement supporté par Qt5.6 + Support complet Qt5.6
- Pas d'accès au codec + Accès au codec
+ Performance du code
+ Taille plus petite des binaires
+ Accès au MFC
+ Support C++ 11/14 Support incomplet du C++ 11/14
+ Cross code Linux/Win - Peut-être pas de ce côté là

Le cas pratique

Je vais lister les changements nécessaires à la compilation du projet aLaCarte (version-1.2-dev) qui fonctionne sous Qt5.1 MinGW.

Toutes les macros FUNCTION , LINE ne sont pas prises en compte par MSVC.. (vive rgrep | sed).
QT += webkit webkitwidgets => QT += webenginecore webenginewidgets
#include <unitstd.h> > #include &lt;io.h&gt;
Pas d’équivalent WebView dans le Designer > ui à refaire...

High DPI

Une nouveauté de Qt5.6 : Qt::AA_EnableHighDpiScaling
From the doc : Enables high-DPI scaling in Qt on supported platforms (see also High DPI Displays). Supported platforms are X11, Windows and Android. Enabling makes Qt scale the main (device independent) coordinate system according to display scale factors provided by the operating system. This corresponds to setting the QT_AUTO_SCREEN_SCALE_FACTOR environment variable to 1. This value has been added in Qt 5.6. This attribute must be set before Q(Gui)Application is constructed.

Redmine Appliance - Powered by TurnKey Linux