Les traductions des meilleurs billets techniques des Qt Quarterly pour la programmation C++ avec Qt
![Logo page cours](./images/qq-numeros.png)
Les traductions des meilleurs billets techniques des Qt Quarterly pour la programmation C++ avec Qt
Nombre d´auteurs : 40, nombre d´articles : 51, dernière mise à jour : 21 juin 2021Â
Â
Sommaire
menu
Numéro 35 - année 2011
-
Services de localisation et de cartographie avec Qt Mobility
par David Boddie, traducteur : Thibaut CuvelierQue vous soyez assis ou non à votre bureau, certains services de localisation et de cartographie disponibles sur Internet peuvent aussi être d'utiles outils de navigation - ou une intéressante distraction. -
Beaucoup de périphériques actuels sont bardés de capteurs, pour l'orientation, la localisation... Des jeux peuvent en tirer profit. -
Plusieurs interfaces, même logique
par Johan Thelin, traducteur : Louis du Verdier, traducteur : Thibaut CuvelierDepuis la première interface graphique, on apprend que garder le code de l'interface et la logique séparés est la clé d'un bon design. Cependant, il est si fréquent d'échouer...
menu
Numéros 33 et 34 - année 2010
-
Les développeurs viennent de Mars, les designers de Vénus
par Hietala Nigel, traducteur : Guillaume BelzL'équipe Qt de Developpez présente régulièrement des nouvelles sur la sortie prochaine de Qt 4.7, de Qt Quick et du QML. La question légitime que l'on peut se poser est de savoir ce que vont nous apporter ces nouveautés en pratique. Après tout, ceux qui utilisent Qt savent créer une interface graphique et n'ont pas besoin, a priori, d'un nouveau langage, certes plus simple à prendre en main que le C++ mais nouveau quand même, pour faire ce qu'ils font déjà .
Dans cet article, les concepteurs de Qt introduisent comment est venu le besoin de proposer cet outil : les designers ont besoin de passer par les développeurs pour implémenter les interfaces qu'ils conçoivent. Cet article présente également ce que peut apporter Qt Quick aux équipes de développement : redonnner le contrôle direct de la création de l'interface graphique aux designers et permettre ainsi aux développeurs de se concentrer sur le partie C++ de l'application. Le tout favorise une meilleure répartition des activités et l'optimisation du travail en équipe. -
Qt s'associe avec le nouvel OS MeeGo
par Chuck Piercey, traducteur : Cédric Bonnier, traducteur : Guillaume BelzAu Mobile World Congress du 15 février 2010, Intel et Nokia ont annoncé le rassemblement de deux distributions Linux, appelé MeeGo, ciblant les périphériques embarqués de plusieurs segments de marché. MeeGo combine le meilleur de Moblin et de Maemo en une seule offre open source qui crée une plateforme intégrée, supportant de multiples architectures processeur et des marchés d'applications fédérées. Les types d'appareils visés sont les smartphones, netbooks, tablettes, TV connectées, les systèmes de divertissement en voiture et les téléphones multimedia. Nokia et Intel prévoient de construire et d'envoyer sur le marché de grandes quantités d'appareils de prochaine génération basés sur MeeGo et ces puces en 2010. -
Les aventures de QLALR - Utiliser QLALR pour générer un parseur pour une aventure textuelle
par Geir Vattekar, traducteur : Cédric BonnierPlusieurs modules de Qt permettent d'interpréter du code ayant sa propre grammaire. C'est le cas par exemple de Qt Script, qui permet d'ajouter des fonctionnalités en Javascript dans un programme Qt, ou le QML, qui utilise une description des interfaces utilisateur au format texte.
Pour créer ces modules, les développeurs de Qt utilisent un générateur d'analyseur syntaxique, QLALR, qui permet de créer du code C++ à partir d'une grammaire. Cette application est peu documentée et jusqu'à maintenant, il était difficile de l'utiliser pour un utilisateur lambda.
Cet article décrit l'utilisation de QLALR à partir d'un exemple complet et simple, permettant d'appréhender facilement cet utilitaire. -
Permettre la traduction facile des interfaces utilisateur est l'un des points forts de Qt. Le support de l'unicode dès les fondations et une infrastructure pour l'internationalisation permettent de travailler facilement dans un environnement internationalisé. -
Nous avons vu dans le Qt Quaterly 25 comment effectuer des requêtes basiques avec XQuery et QtXmlPatterns, ne retournant que du texte brut. Maintenant, comment récupérer un document sous forme structurée ? C'est ce que cet article va tenter de faire. -
Pour la gestion de la compilation de projets, Qt est fourni avec son propre utilitaire : QMake. Cependant, le développeur peut souhaiter travailler avec d'autres outils, par choix personnel ou pour répondre à certains besoins. Cet article présente en détail comment compiler des projets Qt en utilisant CMake : le processus de compilation, les paramètres de configuration, la gestion des modules Qt. -
Le module Qt Quick et le langage QML est l'un des ajouts majeurs de Qt 4.7. Cet article entre en détail sur ce qu'est Qt Quick et le QML, les spécificités du langage et son interaction avec du code C++/Qt. -
Requête de données génériques avec QtXmlPatterns et XQuery
par David Boddie, traducteur : Thibaut CuvelierDans l'article précédent, XQuery et la météo, sur l'utilisation de Qt pour les requêtes et le traitement de documents XML, nous avons jeté un ?il aux classes de base du module QtXmlPatterns. Nous avons vu que, avec des requêtes sur le document, nous pouvions récupérer des données utiles sur un document XML d'une manière simple qu'un lecteur XML spécialisé pourrait prendre en charge.
menu
Numéros 29 à 32 - année 2009
-
La sortie retentissante de Qt 4.5.0
par Nokia Corporation and/or its subsidiary(-ies), traducteur : Thibaut CuvelierLe 3 mars 2009, grand jour des sorties chez Qt : le très attendu Qt 4.5.0, l'IDE Qt Creator 1.0 et le tout premier Qt SDK. Il a été reçu les bras ouverts, surchargeant au passage notre serveur pour un petit moment. Depuis lors, pas moins de 13 TB de fichiers Qt pour cette version au été distribués ! -
Une fonctionnalité nouvelle et non présentée de Qt 4.5 est les widgets translucides de haut niveau ? fenêtres dans lesquelles on peut voir au travers. Les applications utilisant la translucidité ? beaucoup de lecteurs média par exemple ? ont constitué une vue courante des bureaux d'aujourd'hui, et les demandes au sujet de ce dispositif sont tout à fait communes sur les listes d'adresses de Qt. Contre toute attente, il n'y a pas beaucoup de kits d'utilitaires à l'extérieur qui supportent la translucidité de manière multi-plateforme, nous avons donc vu le besoin d'exposer cette fonctionnalité par le biais de l'écriture de cet article. -
Le repérage des paires de parenthèses avec QSyntaxHighlighter
par Geir Vattekar, traducteur : Louis du VerdierUne fonctionnalité de QSyntaxHighlighter très souvent oubliée ou négligée est sa faculté à lier les données utilisateurs avec le bloc de texte en coloration. Parmi les nombreuses possibilités qu'il ouvre pour l'édition de texte avancée, nous avons choisi le repérage des parenthèses ? qu'un éditeur qui se respecte ne peut ignorer.
Bien que le but principal de cet article soit d'éclaircir certaines capacités obscures de QSyntaxHighlighter et de leur trouver une utilité, il montrera également la manière de les utiliser dans le but d'ajouter des sélections supplémentaires dans un QPlainTextEdit. -
Concevoir la prochaine génération d'interface utilisateur multiplateforme avec Qt
par Johan Thelin, traducteur : Guillaume BelzLe framework Graphics de Qt apporte différents outils permettant d'améliorer l'interface utilisateur de vos applications en modifiant l'apparence des objets graphiques et en les animant.
menu
Numéros 25 à 28 - année 2008
-
Ceux d'entre vous qui suivent le développement de Qt auront remarqué la récente introduction d'un module QtXmlPatterns. Il permet l'utilisation de XQuery dans des applications Qt, avec à la clé diverses manières de sélectionner, d'extraire et d'agréger des données dans des fichiers XML ou à structure équivalente. Pour vous donner un avant-goût de ce que QtXmlPatterns peut vous proposer, nous implémenterons un robot Web simple et basé sur Qt qui peut être utilisé pour effectuer des requêtes XQuery basiques comme le listage d'éléments et la recherche de liens dans des documents HTML. Nous lui ajouterons une interface utilisable et fournirons ainsi une vue claire du site Web d'entrée, de la requête exécutée et de la sortie générée. Cependant, avant de commencer la construction du robot, regardons un peu plus en détail XQuery. -
Le framework Undo/Redo de Qt, introduit avec Qt 4.2, fournit la possibilité de doter les utilisateurs de vos applications avec des moyens d'annuler les changements apportés aux documents, tout en fournissant aux développeurs une API facile à utiliser, basée sur le pattern Command. -
L'apparition de WebKit dans Qt 4.4 ouvre le monde du Web aux applications Qt, en effaçant les frontières entre les applications traditionnelles et les services en ligne. Dans cet article, nous allons voir une manière d'utiliser cette approche hybride dans le développement d'applications. -
Sur QtCentre, des personnes viennent à nous avec le problème récurrent de l'IHM gelant pendant de longues opérations. Le problème n'est pas difficile à résoudre, mais vous pouvez le faire de façons différentes, donc j'aimerais présenter un panel des options possibles qui peuvent être utilisées selon la situation à laquelle vous faites face. -
Écrire des fichiers ODF avec Qt
par Nokia Corporation and/or its subsidiary(-ies), traducteur : Nob_.L'arrivée de Qt 4.5 marque l'apparition de la classe QTextDocumentWriter, rendant possible la création de fichiers au format OpenDocument (ODF) à partir de n'importe quel document Qt. Ceci ouvre la voie à la création automatisée de documents et la distribution dans un format conforme aux standards que l'utilisateur pourra ouvrir dans une large gamme de logiciels de traitement de texte. -
Qt propose depuis longtemps la possibilité d'afficher des documents contenant du texte avec mise en forme, par exemple un document HTML. Mais les utilisateurs peuvent souhaiter d'afficher également du texte mise en forme provenant de type de document non pris en charge par défaut par Qt.
Dans cet article, l'auteur présente comment intégrer la bibliothèque Poppler pour afficher des documents PDF dans des fenêtres Qt, faire des recherches dans le texte et extraire du texte. -
Depuis Qt 4.5, il est désormais possible de demander à Qt d'utiliser Cocoa sur Mac OS X. Les principaux avantages sont la capacité de lancer des applications 64 bits et l'accès à des fonctionnalités uniques à Cocoa. Dans cet article, nous allons examiner le fond du changement vers Cocoa, montrer comment compiler Qt pour des besoins si spécifiques, et regarder quelles sont les nouvelles possiblités offertes pas ce portage. -
Coup de projecteur sur Qt Creator, l'IDE multi-plateformes
par Kavindra Palaraja, traducteur : Thibaut CuvelierQt Creator est un environnement de développement intégré, sans coût, multi-plateformes pour le développement de projets Qt. Il est disponible sur Linux, Mac OS X et Windows. -
Tout comme les librairies comme Qt ne sont pas complètes sans guide de référence ni de documentation des APIs, une application dsitribuée doit l'être avec un manuel et une documentation en-ligne. Dans leur quête d'assistance dans tous les aspects du développement, les développeurs de Qt fournissent une solution facilement réutilisable.
Qt 4.4 a introduit tellement de nouvelles fonctionnalités pour une version mineure, qu'une a échappé à la majorité des utilisateurs. Le module Qt Help remplace le Qt Assistant des versions précédentes. Il fournit des mécanismes d'intégration de Qt Assistant dans vos applications, mais ce n'est pas tout.
Dans cet article, nous allons essayer de couvrir quelques unes de ces nouveautés du module Qt Help par un exemple. Nous devrons donc créer une documentation d'API en plus d'une manuel utilisateur. -
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.
menu
Numéros 21 à 24 - année 2007
-
Utiliser un service Web simple avec Qt
par Nokia Corporation and/or its subsidiary(-ies), traducteur : Thibaut CuvelierLes classes de réseau de Qt permettent le développement d'applications réseau compliquées, mais certains Web Services sont toujours assez simples pour être utilisés avec un peu d'imagination et encore moins de code. -
L'accessibilité dans les applications, c'est rendre ces applications utilisables par des personnes handicapées. Ceci peut être implémenté dans l'application elle-même (par exemple, en utilisant une interface à haut contraste avec des couleurs spécialement choisies, ainsi que des polices adaptées, ou bien en fournissant un support pour des outils externes (des lecteurs d'écran ou des affichages en Braille). -
La classe QDataWidgetMapper, introduite dans Qt 4.2, apporte une interface qui permet d'associer des données à un formulaire. Cette manière d'afficher les données facilite la création d'applications basées sur des registres et permet de modifier l'interface utilisateur avec des outils plus habituels tels que Qt Designer. Bien que les items de Qt soient capables d'afficher des informations en grande quantité, de nombreuses applications ont tendance à utiliser les registres et les interfaces en formulaires pour présenter les données de façon simplifiée. Parfois, c'est parce que les utilisateurs y sont plus habitués, parfois parce que c'est une conséquence du stockage des données.
menu
Numéros 17 à 20 - année 2006
-
Il y a trois approches pour utiliser des bibliothèques externes à Qt : les lier directement, les charger dynamiquement quand nécessaire, et utiliser les plug-ins pour applications. Dans cet article, nous jetterons un oeil à ces trois approches, et discuterons de leurs avantages et inconvénients. -
L'API d'E/S de Qt pour images fournit une interface de haut niveau pour la lecture et l'écriture d'images dans les formats populaires supportés par Qt, dont le JPEG, le PNG et le BMP. Mais que se passe-t-il si votre application a besoin d'un support d'autres formats, non supportés par Qt ?
Cet article pose cette intrigante question.
La première partie donne un aperçu du framework de Qt, en révélant ce qui se passe derrière la scène. Spécifiquement, nous montrons comment Qt peut supporter une telle multitude de formats d'image d'une manière extensible.
La seconde continue en montrant, à l'aide d'un exemple, comment vous pouvez participer au pouvoir de ce framework, et fournir une intégration avec vos propres formats d'image. -
Déployer dans le Bazaar
par Nokia Corporation and/or its subsidiary(-ies), traducteur : Thibaut CuvelierLe déploiement d'applications sous Linux peut, quelques fois, être plutôt fastidieux. En effet, il faut supporter des myriades de distributions et des pléthores de librairies. Sans doute connaissez-vous un magasin d'ameublement suédois, qui doit faire la même chose. Voici sa solution : amener les quelques pièces nécessaires à l'utilisateur, et le laisser les assembler seul. Malheureusement, les instructions d'assemblage pour un logiciel ne sont pas souvent aussi polyvalentes que celles de Billy l'étagère. -
Pour les dactylos rapides, il y a des raccourcis clavier. Ceux-ci sont pleinement pris en charge par Qt et facile à configurer. Il existe un équivalent orienté souris des raccourcis clavier : il s'agit des gestes de souris. Dans cet article, je présenterai quelques classes que vous pouvez employer pour utiliser la reconnaissance des gestes de souris dans votre application Qt. -
Réordonner les boutons
par Nokia Corporation and/or its subsidiary(-ies), traducteur : Thibaut CuvelierLes différentes plateformes supportées par Qt ont des lignes directrices différentes pour l'ordre des boutons dans les boîtes de dialogue. La plus visible différence est l'inversion des boutons OK et Annuler sous Mac OS X et Gnome, mais il y a bien d'autres différences. Pour s'assurer que les boîtes de dialogue créées avec Qt Designer aient un air natif sur toutes les plateformes, Qt 4.2 introduit la classe QDialogButtonBox, une couche d'abstraction de la ligne de boutons, généralement en bas ou à droite. -
Vous êtes-vous déjà trouvé en train d'écrire tr("%1 object(s) found").arg(count) dans l'une de vos applications ? Qt 4.2 introduit un mécanisme puissant permettant de gérer avec élégance les pluriels : celui-ci fonctionne pour toutes les langues et exige peu de travail supplémentaire de la part du développeur. -
Des apparences personnalisées utilisant les feuilles de style
par Girish Ramakrishnan, traducteur : Louis du VerdierAvec l'introduction des feuilles de style de Qt, styliser les widgets de Qt est devenu bien plus simple. Si vous avez uniquement besoin de personnaliser l'apparence d'un widget existant ou de designer un nouveau style complet à partir de rien, il existe désormais une alternative au sous-classement de QStyle.
menu
Numéros 13 à 16 - année 2005
-
Qt fournit un ensemble d'algorithmes (utilisant les templates) correspondant aux plus utiles de la STL depuis la version 2.
menu
Numéros 9 à 12 - année 2004
-
Nous nous focaliserons sur le déploiement d'applications sur Windows. Comme pour des applications sur Mac OS X, déployer des applications sur Windows ne nécessite pas de programmation C++. Tout ce dont vous avez besoin est de compiler Qt et votre application en mode release, et de suivre les procédures décrites dans cet article. Nous exposerons ces procédures en déployant l'application showimg disponible dans le répertoire examples de Qt. -
Qt nous permet de connecter plusieurs signaux à un même slot. Cela peut être utile pour donner à l'utilisateur différentes manières de réaliser la même action. Cependant, nous voulons parfois que le slot se comporte légèrement différemment selon le widget qui l'a appelé. Dans cet article, nous explorons diverses solutions, dont l'utilisation de QSignalMapper. -
Les connexions réseaux sécurisées ont deux contraintes. Premièrement, vous devez être sûr que vous communiquez avec le bon correspondant. Deuxièmement, vous devez être certain que les données échangées n'ont pas été altérées ou même lues par une tierce partie ; et, dans le cas où elles ont été lues, qu'elles n'ont pas pu être déchiffrées. Cette article expose comment créer un client sécurisé avec la librairie OpenSSL et la solution Qt QtSSLSocket qui prend en compte ces contraintes. -
Implémenter un mutex en lecture et en écriture
par Volker Hilsheimer, traducteur : Louis du VerdierLe développement de logiciels threadés est toujours un défi. Diviser une application complexe en unités d'exécution séparées sans compromettre sa stabilité requiert, non seulement une conception bien structurée qui empêche le développeur d'accéder aux données non protégées, mais aussi une bonne compréhension des concepts, des outils et des mises en garde de la programmation multithreadée. -
Dans cet article, nous allons développer un dérivé de QIODevice, qui chiffre et déchiffre à la volée un flux. La classe agit comme un wrapper pour une classe d'E/S, comme QFile ou QSocket. Elle peut même être combinée avec QTextStram ou QDataStream. Finalement, nous verrons quelles améliorations QIODevice peut nous apporter. -
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. -
Optimisation avec QPixmapCache et PyQt
par Mark Summerfield, traducteur : Guillaume Belz, adaptateur Python : Grégoire LotheMettre à 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. Les exemples sont réalisés sous Python 3.2 avec PyQt 4.7.
menu
Numéros 5 à 8 - année 2003
-
Qt fournit des classes DOM et SAX pour l'analyse du XML, mais n'a pas toujours proposé une classe pour sa génération. Dans cette article, nous allons développer une classe XmlWriter, basée sur QTextStream. Nous allons exemplifier son usage avec un générateur de fichiers .ui. -
Les QUrlOperator fournissent un accès simple et pratique aux fichiers distants, accessibles via les protocoles FTP ou HTTP. Apparu dans Qt 3.1, disparu de Qt 4.0, il fournit des interfaces plus directes pour ces protocoles via les classes QFtp et QHttp. Cet article va traiter de la manière dont ces classes peuvent donner plus de pouvoir et de contrôle sur des fichiers et serveurs distants -
Cet article fournit des réponses à quelques questions fréquemment posées sur l'internationalisation des programmes Qt. Il couvre des sujets variés, comme la distribution des fichiers de traduction, les traductions inversées, et le changement dynamique de langue. -
Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt
par Trond Kjernåsen, traducteur : Guillaume BelzLe module QGL de Qt facilite l'intégration de rendu OpenGL dans des applications Qt. Dans cet article, on va montrer comment créer un QGLContext personnalisé qui implémente des fonctionnalités spécifiques non proposées par QGL. On présentera également un exemple simple d'application multiplateforme et multithread avec Qt et OpenGL.
menu
Numéros 1 à 4 - année 2002
-
Le widget QListView fournit des vues, et de listes, et d'arborescences. La classe fournit un tri par n'importe quelle colonne, qui respecte le codage Unicode, ou bien strictement aucun tri. Cependant, il existe souvent des situations où le tri doit être plus sophistiqué qu'un simple tri lexical. Cette partie explique comment prendre le contrôle total du tri de QListView. -
La classe QMap<Cle, Valeur> stocke des paires (clé, valeur), où chaque clé est associée à une seule valeur. Cet article présente une méthode très rapide, mais peu propre, pour faire des clés associées à de multiples valeurs. -
Les programmeurs en C++ peuvent utiliser des expressions régulières à la manière du Perl grâce à la classe QRegExp, complètement réécrite depuis Qt 3.0. Nous présentons ici quelques aspects pratiques de l'utilisation d'expressions régulières pour l'analyse, la validation et le filtrage. Nous jetterons aussi un oeil à leur optimisation et à la rectification de quelques futilités. -
Le mécanisme de Qt pour l'internationalisation (tr()) est facile à comprendre, facile à utiliser, et facile à mal employer. Cet article donne quelques astuces pour s'assurer que toutes les chaînes d'une application, visibles pour l'utilisateur, passent à la moulinette tr(), et que lupdate les trouve. Les développeurs monolingues ne sont pas laissés sur le banc : cet article traite aussi du suédois.