Les traductions des meilleurs billets techniques des Qt Labs pour la programmation C++ avec Qt
Les traductions des meilleurs billets techniques des Qt Labs pour la programmation C++ avec Qt
Nombre d´auteurs : 24, nombre d´articles : 35, dernière mise à jour : 29 août 2021
Sommaire
menu
C++
-
Vous avez toujours rêvé de savoir à quoi correspondait ABI, name mangling et autres virtual tables ? Vous savez déjà ce dont il s'agit mais vous aimeriez en savoir plus ? Alors cet article est pour vous ! -
Après avoir dégrossi les ABI, nous allons cette fois nous attaquer aux conventions d'appel, une partie des ABI, mais néanmoins très importante. -
Parfois, aller tout à fait à l'encontre de ce qu'on veut généralement, cela ne peut apporter qu'un bien énorme. Surtout quand on se débarrasse d'un peu de précision quand elle n'est pas importante et qu'on peut ainsi économiser les batteries de tous nos téléphones. -
QLocale : à propos du temps (et des dates, et des langues, et des...)
par Jeremy Katz, traducteur : Louis du VerdierL'un des buts de Qt est de rendre simple ou, du moins, de faciliter le portage d'un système d'exploitation à un autre. Une application Windows transférée sur un bureau Linux ? Bien sûr. Une application Mac OS X sous Symbian ? OK. -
Sémantique d'ordonnancement mémoire et opérations atomiques dans Qt
par Thiago Macieira, traducteur : Thibaut CuvelierCe week-end, un utilisateur a posté sur la mailing list qt4-preview-feedback un message disant que la documentation de QAtomicInt avait besoin d'un peu de travail. Je lui ai répondu que la sémantique d'ordonnancement mémoire serait mieux expliquée dans un livre que dans la documentation Qt. En y repensant plus tard, je me suis dit que nous pourrions ajouter un peu de documentation à ce sujet. Voici un petit test. -
Alors que beaucoup sont enthousiastes au sujet des technologies QML et JavaScript, quelques-uns d'entre nous continuent de coder en C++. Le C++ est sur le point d'être mis à jour : le C++11 (anciennement connu sous le nom C++0x). Le projet final a été approuvé en mars dernier par le comité de normalisation du C++ et la spécification finale devrait être publiée cet été.
menu
Les pointeurs
-
Les pointeurs intelligents de Qt
par Thiago Macieira, Harald Fernengel, traducteur : Thibaut CuvelierLes pointeurs intelligents sont très nombreux dans Qt : pas moins de huit classes différentes sont disponibles. Tous ne sont pas publics, tous ne sont pas conseillés. Cela en laisse quand même une belle floppée.
Après la description de tous ces pointeurs intelligents, un approfondissement du dernier arrivé, QScopedPointer, sera effectué.
menu
La compilation
-
QMake est l'un de ces outils cruciaux qui doivent juste fonctionner, sous peine de ruiner totalement votre journée ; à savoir si votre projet utilise QMake, évidemment. Avant que QMake ne fasse surface, il y avait TMake. TMake était un script Perl qui effectuait un bon travail par rapport à ce pour quoi il avait été conçu à l'époque. Le fonctionnement interne de QMake était basé sur TMake, puis sur un tas de propriétés et des hacks par la suite. QMake a fini en tant que bestiole très-difficile-à-maintenir-sans-casser-quoi-que-ce-soit-d'ésotérique. La question est : qu'allons-nous en faire ? -
L'article précédent, sur le site officiel, a engendré un grand nombre de réponses constructives. Ainsi, pour répondre aux suggestions des intéressés, l'auteur a décidé de publier une réponse sous la forme d'un nouvel article, présentant qu'il serait dommage de se limiter à des simples réponses par le biais du système de commentaires.
menu
Le débogage
-
Dans ce premier article sur l'intégration du débogage dans Qt Creator, l'auteur présente comment celui-ci prend en charge l'affichage de structure abstraite comme QHash, pour l'afficher sous une forme proche de ce que les déveleppeurs conçoit une QHash.
menu
Les threads
-
Vous travaillez régulièrement avec QThread ? Vous utilisez moveToThread() sans vraiment savoir ce que fait cette fonction ? Vous pensez savoir ce que fait cette fonction mais vous voulez vérifier que vous ne vous trompez pas ? Cet article répondra à toutes ces questions ! -
L'utilisation des threads vous donne des maux de tête ? Evitez-les en lisant cet article !
menu
La vue graphique
-
Vous trouvez votres vues graphique trop statique ? Vous avez envie de l'animer mais vous ne voulez pas gérer le moteur physique vous-même ? Cet article vous présente Box2D qui s'occupe de toute la partie physique et qui peut facilement être lié avec Qt.
menu
Qt Graphics et performances
-
Le 11 décembre 2009, la documentation de QPainter subissait un énorme ajout concernant l'optimisation de son utilisation. En effet, le bon usage de cet outil n'était pas accessible à tous, il n'était pas présenté dans la documentation. Ceci ne fut qu'un prétexte à une série d'articles sur l'optimisation de QPainter et de Qt Graphics en général. -
Au centre de tous les Qt Graphics, on retrouve la classe QPainter. Elle permet de faire le rendu dans une surface, grâce à la classe QPaintDevice. Des exemples de surface de dessin sont : les classes QImage, QPixmap et QWidget. La façon dont cela fonctionne est que pour une implémentation donnée de QPaintDevice, nous récupérons un moteur de rendu personnalisé qui prend en charge le rendu sur cette surface. Tout cela est expliqué dans notre documentation "ainsi peut-être pas trop intéressant". Regardons cela plus en détail. -
Le moteur de rendu Raster est le moteur de rendu par défaut de Qt. L'ensemble des fonctionnalités de dessin de Qt y est implémenté, uniquement par logiciel, ce qui permet d'utiliser ce moteur sur toutes les plateformes.
Cet article décrit en détail le fonctionnement de ce moteur pour optimiser le rendu des applications, les fonctionnalités qui peuvent être très coûteuses en temps et mesure les performances de plusieurs fonctions. -
Dans les précédents posts de cette série, Gunnar a décrit le design et les caractéristiques du système de dessin de Qt et a exploré le moteur Raster plus profondément. Dans cet article, je vais décrire les fonctionnalités uniques du système graphique OpenVG. -
OpenGL est une API qui permet de bénéficier l'accélération matérielle (puce graphique) pour réaliser les rendus 2D et 3D. Le moteur de rendu OpenGL utilise cette API pour améliorer les performances des rendus dans Qt tout en offrant les mêmes fonctionnalités que le moteur Raster.
Cet article décrit en détail le fonctionnement de ce moteur de rendu, quelles sont les fonctionnalités qui sont coûteuses et comment optimiser son utilisation. -
En général, quand on souhaite implémenter une fonctionnalité graphique, plusieurs choix de conception sont possibles. Les utilisateurs de Qt peuvent choisir de créer leur propre QProxyGraphicsItem, de créer un QGraphicsItem ou encore de créer un widget personnalisé.
Ce choix conceptuel n'est pas sans conséquence en termes de performances. Dans cet article, l'auteur présente plusieurs méthodes pour implémenter un exemple simple de clavier virtuel et montre les conséquences de ce choix. Il en conclut que les méthodes les plus simples à réaliser ne sont pas les plus performantes. -
Utilisation de QTextLayout pour améliorer les performances du rendu de texte -
Utilisation des threads pour générer du contenu prenant du temps à être afficher -
La folie est de mettre en forme le même texte
par Eskil Abrahamsen Blomfeldt, traducteur : Guillaume BelzOn attribue à Albert Einstein la phrase : « la folie est de faire la même chose encore et encore en espérant un résultat différent ». Apparemment, la citation est mauvaise et il faut en fait l'attribuer à Rita Mae Brown mais ce n'est pas important pour le moment. Ce qui est important est que la plupart des applications Qt sont folles. -
Comment rendre les animations du framework Animation de Qt aussi douces que le velours ? Le QML Scene Graph, le projet de graphe de scène 2D pour QML, apporte une solution technique, afficher une image à chaque synchronisation verticale.
menu
Qt Quick
-
Construire l'avenir : (ré-)introduction aux composants de Qt Quick
par Henrik Hartz, traducteur : Guillaume BelzQt Quick modifie fondamentalement la façon dont vous écrivez des interfaces utilisateurs natives et permet de créer des applications étonnantes, utilisables aussi bien par les designers que par les développeurs, sans oublier la grande communauté des "man-cave hackers" et des amateurs. Cet article présente les nouveaux composants disponibles dans cette API. -
Beaucoup de personnes ont demandé aux trolls de Nokia s'il était possible de créer des jeux en QML et comment faire. Dans cet article, l'auteur présente les tutoriels Samegame, Snake et Minehunt et explique quelle approche utiliser. -
Avec l'arrivée du module QtDeclarative et du langage QML, Qt Creator devra bénéficier d'outils supplémentaires dans sa future version, la version 2.1. C'est donc pour simplifier l'utilisation de ce module et de QML que les développeurs ont prévu un certain nombre d'améliorations : améliorations de l'éditeur QML, du Quick Designer, du débogueur JavaScript/QML avancé et support direct des applications en C++/QML.
menu
WebKit
-
L'HTML5 introduit un nouvel élément de bloc nommé <canvas> pour vos pages web. Il permet aux développeurs de créer des pages graphiquements riche à l'aide de cette nouvelle fonctionnalité venant initialement de WebKit. Cet article présente rapidement les conformités et performances de <canvas>, les recherches en cours sur cet élément ainsi que de nombreuses démos.
menu
Les bibliothèques complémentaires
-
OpenCL est une librairie multiplateforme qui permet d'utiliser les processeurs graphiques pour réaliser des calculs lourds. Cet article présente la classe QtOpenCL, un wrapper facilitant l'utilisation de OpenCL dans Qt.
menu
GUI
-
Changement de comportement de Gesture dans Qt 4.7.1
par Frederik Gladhorn, traducteur : Francis GenetQt 4.6 montrait la première intégration du framework Gesture, il est encore tout jeune, ce qui laisse la place aux erreurs de jeunesse, comme cet important changement de comportement.
menu
Les chaînes de caractères
-
Tout le monde sait que tout framework, toolkit et langage plus récent que le C dispose de sa propre classe de chaîne de caractères. Certains disent même qu'il s'agit d'une fonctionnalité du langage C que de ne pas disposer d'un tel type, le gardant ainsi simple et effilé. D'autres en parlent comme d'un inconvénient, leur permettant de bomber la poitrine et de faire tomber les débutants dans le piège de la comparaison de chaînes avec == au lieu de strcmp(). -
Améliorer les performances de Qt lors du rendu avec plus de SIMD
par Benjamin Poulain, traducteur : Thibaut CuvelierAvec les deux dernières versions de Qt, les performances ont été invariablement améliorées. Qt 4.5 a introduit les systèmes graphiques sous forme de plug-ins et de nombreuses améliorations de rendu. Qt 4.6, lui, ne s'est pas focalisé et les performances sur les systèmes embarqués n'ont cessé de s'améliorer avec chaque version de patch. Le problème avec ces accélérations est qu'on tombe à court de voies d'amélioration pour la prochaine itération. Nous avons jeté un coup d'?il pour de nouvelles zones d'amélioration et, une fois de plus, Qt 4.7 sera plus rapide que ses prédécesseurs. -
Améliorer les performances de Qt avec les chaînes de caractères avec SIMD... ou pas
par Thiago Macieira, traducteur : Thibaut CuvelierInspiré par le travail de Benjamin, Samuel et d'autres avec SIMD, profitant de l'opportunité d'apprendre le sujet directement avec les ingénieurs d'Intel, qui connaissent le sujet mieux que quiconque, j'ai décidé de mettre les mains dans le cambouis et de faire aussi un peu de SIMD, après quelques heures de travail. Puisque je ne comprenais pas les bases des modes de composition, de fondu ou de rendu, j'ai décidé de tenter ma chance sur quelque chose de compréhensible : QtCore. -
La semaine dernière, j'ai eu deux jours assez ennuyants, j'ai donc, pour me motiver, décidé de passer du temps à mon activité favorite : regarder le code assembleur (non, je n'ai pas de vie). Je le fais généralement pour voir comment le compilateur a optimisé certaines portions de code. Par ce biais, on peut découvrir de nouvelles choses et des sources d'améliorations potentielles. Cette semaine-là, j'ai appris quelque chose. -
QString et Unicode, optimisation de QString::fromUtf8
par Thiago Macieira, traducteur : Thibaut CuvelierLa dernière fois, nous avons attaqué le problème de la conversion de Latin1 (ISO-8859-1) en UTF-16 pour les QString. Cependant, la plupart des caractères des expressions littérales en code C++ sont en fait en ASCII, un sous-ensemble de Latin1, qui a la conversion la plus facile vers UTF-16. Les performances de cette opération nous importent donc. -
La dernière fois, nous avons arrêté nos expérimentations sur la faisabilité de remplacer le codec Latin1 par défaut par UTF-8. Le texte prévu était plus long, mais a été raccourci pour se concentrer sur le code et les performances, sans tenir compte du contexte, des raisons, des détails. -
Sémantique d'ordonnancement mémoire et opérations atomiques dans Qt
par Thiago Macieira, traducteur : Thibaut CuvelierCe week-end, un utilisateur a posté sur la mailing list qt4-preview-feedback un message disant que la documentation de QAtomicInt avait besoin d'un peu de travail. Je lui ai répondu que la sémantique d'ordonnancement mémoire serait mieux expliquée dans un livre que dans la documentation Qt. En y repensant plus tard, je me suis dit que nous pourrions ajouter un peu de documentation à ce sujet. Voici un petit test.
Voir également :
La rubrique Qt de Developpez.com : actualités, nouveautés, annonces Le forum Qt La FAQ Qt avec de vrais exemples de codes La traduction de la documentation Qt en français Les meilleurs outils, environnements de développement et bibliothèques pour la programmation C++ avec Qt Les binaires Qt Les meilleurs livres sur Qt critiqués par la rédaction Le blog de l'actualité Qt La TV Qt
La rubrique Qt de Developpez.com : actualités, nouveautés, annonces Le forum Qt La FAQ Qt avec de vrais exemples de codes La traduction de la documentation Qt en français Les meilleurs outils, environnements de développement et bibliothèques pour la programmation C++ avec Qt Les binaires Qt Les meilleurs livres sur Qt critiqués par la rédaction Le blog de l'actualité Qt La TV Qt