Qt Creator 2.5 est sorti en beta

Suite à la sortie de Qt Creator 2.5 en beta, il est grand temps de faire le tour de quelques nouveautés, sans toutes les passer en revue.

C++11

Publié en septembre dernier, le standard ISO C++11 se doit d’avoir un meilleur support dans l’EDI ; notamment, on trouvera les mots-clés nullptr, constexpr, static_assert, noexcept et auto, ainsi que les espaces de noms en ligne et les lambdas (partiellement).

De même, quelques nouvelles actions de refactorisation sont disponibles : insertion d’un #include pour les identifiants indéfinis, extraction de fonction, réarrangement de liste de paramètres, synchronisation des signatures (changer le nom d’un paramètre dans la déclaration répercutera la modification dans le corps).

Lire la suite

Thread travailleur avec Qt en utilisant les signaux et les slots

Qt fournit des classes de threads indépendantes de la plateforme, une manière thread-safe de poster des événements et des connexions entre signaux et slots entre les threads. La programmation multithreadée s’avantage des machines à plusieurs processeurs et est aussi utile pour effectuer les opérations chronophages sans geler l’interface utilisateur d’une application. Sans multithreading, tout est fait dans le thread principal.

Thread travailleur avec Qt en utilisant les signaux et les slots

Exposer des modèles C++ imbriqués à QML

Bien que ce cas d’imbrication puisse sembler rare en pratique, le fait que XML n’ait pas de support direct pour les modèles arborescents rend l’utilisation de modèles C++ imbriqués très utile pour obtenir une structure en arbre.

Un exemple de cas pratique où les modèles imbriqués sont utiles est le stockage de conversations Facebook. Un mur Facebook est constitué de notifications sociales (modèle racine), chacun pouvant avoir des commentaires (modèles internes).

Exposer des modèles C++ imbriqués à QML

Qt 4.4 introduit une nouvelle classe de gestion de disposition pour des formulaires à deux colonnes (les libellés sur la gauche et les champs d’édition sur la droite). Pour de tels formulaires, QFormLayout dispose de plusieurs avantages par rapport à QGridLayout, notamment le fait d’être multiplateforme et de disposer d’API pertinentes.

Cet article va montrer comment cette classe fonctionne.

Retour en forme avec QFormLayout

Support commercial de VxWorks

Suite à une collaboration entre Wind River (développeur de VxWorks, un système d’exploitation temps réel apparu en 1987 prévu pour l’embarqué) et Digia (qui, pour rappel, s’occupe du support commercial de Qt), les développeurs Qt pourront utiliser les plateformes VxWorks comme cible avec un support complet de la part de Digia.

Ceci signifie que les dernières versions de Qt seront testées et validées sur des plateformes VxWorks, avec des outils pour faciliter le développement. Ainsi, Qt sera plus accessible (on pourra même dire que les applications et GUI l’utilisant se fondront parfaitement dans le système) dans les secteurs privilégiant VxWorks (l’industrie, le médical, l’aérospatiale et le militaire), sur des plateformes sélectionnées (puces Intel, Freescale et Texas Instruments), avec support des standards graphiques OpenGL ES, OpenVG et EGL, pour VxWorks 6.9 et plus récents.

VxWorks était déjà supporté depuis Qt 4.6, mais uniquement par la communauté. Ici, il s’agit d’un support commercial complet (bien que rien ne soit précisé explicitement dans le communiqué en ce qui concerne la version open source de Qt : les changements au code y seront-ils reportés, comme pour les précédentes versions de Qt ?). Il sera disponible en version beta sur Qt Commercial 4.8.1.

Source : communiqué.

Optimisation avec QPixmapCache

Mettre à jour à répétition les pixmaps des widgets peut bloquer les programmes. Cet article montre comment améliorer la vitesse d’exécution des applications en mettant en cache les pixmaps obtenues en redessinant les widgets.

Cet article est la version Python de Optimisation avec QPixmapCache. Les exemples sont réalisés sous Python 3.2 avec PyQt 4.7.

Optimisation avec QPixmapCache

PySide 1.0.0 en version finale

Quelques jours après la sortie de Qt 4.7.2, le binding Python promu par Nokia, PySide, se met sur son 31 et affiche la version finale de la 1.0.0, après un long cycle de développement, deux semaines après la release candidate, la communauté ayant apporté énormément au développement de cette version.

S’achève donc ainsi la période de correction des bogues, des régressions et des autres dysfonctionnements en tout genre, l’ajout de nouvelles fonctionnalités va pouvoir reprendre. Notamment, il est prévu pour cette série d’ajouter le support de Python 3. Aussi, l’amélioration du code reprendra de plus belle, pour diminuer l’occupation mémoire et améliorer les performances.

D’ores et déjà, une série de paquets pour diverses plateformes sont disponibles : la plupart des distributions Linux répandues, Windows, OS X et Maemo 5 peuvent déjà passer à PySide 1.0.0 sans attendre.

La date de la prochaine version n’a pas été annoncée ; on pourrait s’attendre à voir des nouvelles d’ici à deux semaines, comme précédemment.

Source : http://www.pyside.org/2011/03/pyside-python-for-qt-1-0-released/

Nokia vend sa division Qt à Digia

Dernières nouvelles du front : Nokia revend la division Qt (certains diront qu’il s’en débarrasse) à Digia. Un accord vient d’être signé entre les deux firmes, Digia reprendra 3500 clients de Nokia. Rappelons que Nokia avait acheté Trolltech, société éditrice de Qt, en 2008. Ceci fait suite à la décision de Nokia de ne pas sortir de smartphone basé sur Symbian ou MeeGo, le dernier résultant de la fusion entre Maemo de Nokia et Moblin d’Intel, et de se baser exclusivement sur Windows Phone 7.

Sebastian Nyström, vice président de Nokia, Application and Service Frameworks, a déclaré que Nokia continuera à investir dans Qt, que ce soit au profit des sections mobiles, embarquées ou desktop. Nokia cherchait un partenaire pour assurer la suite des licences commerciales et des services dans la sphère Qt. Le choix de Digia s’est fait car la société avait déjà une certaine base dans la communauté Qt et sera à même de continuer à étendre le framework :

Nokia will continue to invest in developing Qt as a cross-platform framework for mobile, desktop and embedded segments, focusing on open source development and expansion, we wanted a partner who can drive the commercial licensing and services business around Qt. Digia has proven, in-depth Qt expertise, operational excellence and a keen interest in growing and improving the overall Qt community and so well positioned to expand the Qt Commercial licensing and services business.

Digia ne deviendra propriétaire du framework que lors de la finalisation de la transaction, fin de ce mois. Cette société voulait aussi avoir une étendue plus mondiale et établira des filiales en Norvège et aux États-Unis, partie de ce contrat. Harri Paani, Senior Vice President de Digia :

We are excited to extend our Qt business to serve our new customers. Building on our in-depth Qt expertise and experience from demanding mission critical solutions, we will offer world-class commercial licensing and support services to Qt Commercial customers. We also look forward to driving further the evolution of Qt by bringing in new features and services

Sources : http://www.engadget.com/2011/03/07/nokia-sells-qt-licensing-and-services-business-to-digia/ et http://www.digia.com/C2256FEF0043E9C1/0/405002251