Les meilleurs cours et tutoriels Qt
Les meilleurs cours et tutoriels Qt
Cette page présente une sélection des meilleurs tutoriels et cours gratuits pour apprendre à développer avec Qt, que ce soit en C++ ou avec Qt Quick et le langage QML. Certains s'adressent plutôt aux débutants en développement d'interfaces graphiques, d'autres aux développeurs confirmés souhaitant approfondir l'un ou l'autre point. Sur cette page, découvrez des tutoriels pour apprendre à utiliser des outils comme Qt Creator ou Qt Linguist et des modules de Qt pour les interfaces graphiques (Qt GUI, Qt Widgets, Qt Quick), la 3D (Qt OpenGL), les bases de données relationnelles (Qt SQL), le réseau (Qt Network), etc., y compris en Python avec PyQt.
Complétez votre parcours en exploitant la FAQ Qt et la sélection proposée d'outils. Posez vos questions sur le forum.
Page lue fois.
Nombre d´auteurs : 77, nombre de traducteurs : 17, nombre d´articles : 148, dernière mise à jour : 23 juillet 2021
-
Ce tutoriel fournit une introduction à la programmation d'interfaces graphiques utilisant la boîte à outils Qt. Il ne couvre pas tout ; l'accent est mis sur la philosophie de la programmation d'interfaces graphiques et les fonctionnalités de Qt sont introduites au fur et à mesure. Certaines fonctionnalités, qui sont souvent utilisées, ne sont pas couvertes par ce tutoriel d'introduction à Qt.
Ce tutoriel est une traduction d'un des tutoriels écrits par Nokia Corporation and/or its subsidiary(-ies), inclus dans la documentation de Qt 4.4.x en anglais.
Sommaire
-
Ce tutoriel fournit une introduction à la programmation d'interfaces graphiques utilisant la boîte à outils Qt. Il ne couvre pas tout ; l'accent est mis sur la philosophie de la programmation d'interfaces graphiques et les fonctionnalités de Qt sont introduites au fur et à mesure. Certaines fonctionnalités, qui sont souvent utilisées, ne sont pas couvertes par ce tutoriel d'introduction à Qt.
Ce tutoriel est une traduction d'un des tutoriels écrits par Nokia Corporation and/or its subsidiary(-ies), inclus dans la documentation de Qt 4.4.x en anglais. -
Ces quelques pages montrent une démarche à suivre pour installer facilement Qt 4.4.3 sur OS X et l'utiliser soit avec Xcode soit avec QtCreator. -
Les débuts avec Qt sont parfois difficiles, cet article a été rédigé pour aider à commencer avec une installation correcte de Qt et à compiler facilement des applications. -
La compilation des projets avec Qt peut être complexe. Il faut gérer les fichiers à l'aide de moc, uic et autres. Il est plus simple de les gérer automatiquement avec l'outil standard proposé par Qt ou à l'aide d'autres outils. -
Ce tutoriel explique la gestion et l'utilisation des boîtes de dialogue avec la bibliothèque Qt. -
Qt Creator est un environnement complet de développement intégré (EDI) pour créer des applications avec le framework Qt. Qt est conçu pour développer des applications et des interfaces utilisateur afin de les déployer à travers plusieurs types de bureau de travail et systèmes d'exploitation mobiles. Cet article fournit une introduction à Qt Creator ainsi que les fonctionnalités qu'il offre aux développeurs. -
Comment approfondir mes connaissances dans Qt ? Comment créer un utilitaire de mise à jour avec Qt ? Quelques questions auxquelles cette série espère répondre. -
Ce livre blanc décrit le framework C++ Qt. Qt aide au développement d'interfaces graphiques multiplateformes avec son approche « écrit une fois, compilé n'importe où ». Utilisant une seule arborescence de source et une simple recompilation, les applications peuvent être exécutées sous Windows, OS X, Linux, Solaris, HP-UX et bien d'autres versions d'Unix avec X11. Les applications Qt peuvent également être compilées pour s'exécuter sur des plateformes embarquées comme Linux embarqué, Symbian ou Windows CE. Qt fournit un excellent support multiplateforme pour le multimédia et les représentations 3D, l'internationalisation, SQL, XML et les tests unitaires, tout en proposant des extensions spécifiques aux plateformes pour les applications spécialisées. -
Cela fait six mois que Digia a dévoilé sa stratégie à propos de Qt lors des Qt Developer Days 2012 et il a depuis travaillé main dans la main avec la communauté pour atteindre ses objectifs, à savoir accroître la popularité de Qt et développer les opportunités commerciales. Ce billet de blog vise à expliquer plus en détail la façon dont Digia a prévu de maintenir Qt en position dominante et de le faire évoluer.
-
CMake est un outil qui lit des fichiers de script et produit des fichiers natifs pour la plateforme sur laquelle il est lancé pour la compilation d'un projet. -
Ce tutoriel vous permettra de compiler des exécutables Qt 4 pour Windows sous Linux afin de tester la portabilité de votre code. -
Vous avez votre chaîne de compilation, votre bibliothèque standard, mais vous voulez compiler des applications utilisant Qt. Suivez ce guide, il vous mènera au bout, de n'importe quelle plateforme vers n'importe quelle autre. -
Ce tutoriel traite de l'utilisation de DevIL comme bibliothèque de lecture et d'écriture d'images sans se priver des avantages de Qt. -
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. -
CMake est un moteur de compilation multiplateforme et libr, très utilisé, notamment pour les projets utilisant Qt. CMake peut s'avérer être plus pratique que QMake, surtout pour les gros projets. Selon Bill Hoffman, le projet KDE fut l'événement déclencheur de la cote de popularité grandissante de CMake en général et notamment avec Qt 4. Les ingénieurs de KDAB ont contribué à CMake afin de s'assurer que le support de Qt 5 soit aussi satisfaisant que possible. KDAB a contribué à certains nouveaux fichiers de configuration pour Qt 5, afin de s'assurer d'une parfaite harmonie entre Qt et CMake. La documentation mise à jour quant à l'utilisation de Qt 5 avec CMake contient les mêmes informations que ce billet de blog.
-
Qt Quarterly est une revue électronique trimestrielle proposée par Nokia à destination des développeurs et utilisateurs de Qt. Ces articles sont écrits par des professionnels de Qt, qui ont de l'expérience avec ce framework : ces sommités nous font part de leur expérience dans le domaine, pour simplifier le développement et pour éviter des erreurs courantes. -
Les Qt Labs sont les laboratoires des développeurs de Qt, où ils peuvent partager des impressions sur le framework, son utilisation, ce que pourrait être son futur. -
Le Qt Developer Network est un réseau anglophone de développeurs Qt, où ils peuvent partager leur expérience sur le framework.
-
Developpez.com répondra de nouveau présent à l'événement de l'année pour les développeurs Qt, à savoir les Qt DevDays 2011 à Munich. Cette page regroupe la présentation des différentes conférences et accueillera par la suite les différents reportages réalisés par l'équipe Qt de Developpez.com. -
L'équipe Qt de Developpez.com fait une fois de plus partie des festivités pour les Qt Dev Days 2010 de Munich. Cette page regroupe les impressions et les photos du reporter sur place. -
Developpez.com répondra de nouveau présent à l'événement de l'année pour les développeurs Qt à savoir les Qt DevDays 2010 à Munich. Cette page regroupe la présentation des différentes conférences et accueillera par la suite les différents reportages et interviews réalisés par l'équipe Qt de Developpez.com. -
Des reporters de Developpez.com sont allés aux Qt DevDays 2009 à Munich. Cette page regroupe les liens vers les différents minireportages ou vidéos de cet événement. -
Cet article est un résumé de la conférence « Animation Framework : A Step Toward Modern UIs », réalisée par Thierry Bastian durant les Qt Developer Days 2009 à Munich. -
Cet article est un résumé de la conférence « Discover Qt Learning & Certification », réalisée par Vladimir Minenko durant les Qt Developer Days 2009 à Munich. -
Étude de cas : utilisation de Qt pour développer des interfaces graphiques et des programmes de visualisation avancés
par Jonathan CourtoisCet article est un résumé de la conférence « Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software », réalisée par Tyson Ratliff durant les Qt Developer Days 2009 à Munich. -
Cet article est un résumé de la conférence « Scripting your Qt application », réalisée par Ken Hansen durant les Qt Developer Days 2009 à Munich. -
Qt fournit divers outils pour aider à la traduction d'application, mais ils sont assez souvent mal utilisés, mal compris? Cette conférence tente d'en faire le tour ainsi que des utilisations un peu plus extrêmes et des problèmes fréquemment rencontrés. -
Deux reporters de Developpez.com sont allés aux Trolltech DevDays 2006 les 11 et 12 octobre à Munich. Cette page regroupe les liens vers les différents minireportages ou vidéos de cet événement. -
Lors des TrolltechDevDays2006, deux membres de Developpez.com ont eu l'occasion d'interviewer plusieurs personnalités-clés de l'entreprise Trolltech, en commençant par son co-PDG Eirik Chambe-Eng. Plusieurs technologies sont aussi présentées, telles que Qt Jambi, l'intégration dans Visual Studio? Ils ont aussi eu l'honneur d'avoir Matthias Ettrich à leur micro, ainsi que Thomas Schillings, chief technology officer chez Trolltech.
-
La nouvelle version de Qt vient de sortir en version 5 alpha. Cette version améliore la prise en charge de la nouvelle norme du C++, le C++11, et modifie ainsi le fonctionnement des signaux et slots de Qt. Cet article fait un rappel sur l'utilisation des signaux et slots et présente les nouvelles fonctionnalités offertes par Qt 5. -
OpenGL dans Qt 5, tour d'horizon des nouveautés de l'intégration d'OpenGL dans Qt
par Guillaume BelzLe support d'OpenGL dans Qt 5 a été modifié pour mieux l'intégrer avec les nouveaux modules de Qt : Qt Quick 2 et Qt 3D. Cet article présente les modifications apportées dans Qt 5. -
L'un des principaux changements que l'on trouvera dans Qt 5 est la réorganisation des modules. Les modules sont regroupés en deux ensembles : les Essentials, installés automatiquement, et les Add-ons, installés à la demande. -
Le portage d'applications de Qt 4 vers Qt 5 est intentionnellement simple. Il y a eu un effort consciencieux au cours du développement de Qt5 jusqu'ici pour maintenir la compatibilité comparée à Qt 4. -
Remplacer les pbuffers par des frame buffer objects dans Qt 5
par Alexandre Laurent, Giuseppe D'AngeloL'utilisation des frame buffer objects peut accélérer le rendu de QPainter. Toutefois, Qt 5 ne le permet pas directement, mais QPainter offre un mécanisme détourné pour y arriver. -
Cet article est le premier d'une série s'intéressant à l'art d'utiliser OpenGL avec Qt 5. Dans cet article, nous verrons dans un premier temps l'historique de Qt et de son support d'OpenGL puis nous découvrirons l'ensemble des nouvelles fonctionnalités de Qt 5.1 qui améliorent le support d'OpenGL. Les prochains articles décriront plus en détail d'autres fonctionnalités et présenteront des exemples mettant en scène l'usage d'OpenGL et de Qt. -
Les signaux et slots avec Qt 5 : présentation des améliorations syntaxiques
par Olivier Goffart, Arnold DumasCela fait maintenant plusieurs mois que Qt 5 est disponible. Cette dernière mouture du framework offre une nouvelle syntaxe de connexion pour les signaux et slots. -
CMake est un moteur de compilation multiplateforme et libr, très utilisé, notamment pour les projets utilisant Qt. CMake peut s'avérer être plus pratique que QMake, surtout pour les gros projets. Selon Bill Hoffman, le projet KDE fut l'événement déclencheur de la cote de popularité grandissante de CMake en général et notamment avec Qt 4. Les ingénieurs de KDAB ont contribué à CMake afin de s'assurer que le support de Qt 5 soit aussi satisfaisant que possible. KDAB a contribué à certains nouveaux fichiers de configuration pour Qt 5, afin de s'assurer d'une parfaite harmonie entre Qt et CMake. La documentation mise à jour quant à l'utilisation de Qt 5 avec CMake contient les mêmes informations que ce billet de blog.
-
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. -
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é. -
Comment créer des extensions avec Qt et de manière multiplateforme ? Comment permettre à mes utilisateurs d'étendre eux-mêmes mon application ? Ce tutoriel va détailler la création d'un système d'extensions avec la bibliothèque Qt et le chargement de ces extensions depuis notre application. -
La mise en place d'une interaction entre boost.signals et le mécanisme de signaux et slots de Qt se fait relativement aisément, en faisant attention à quelques points. -
Qt est un framework dont les fondations ne sont pas connues de la totalité des gens qui l'utilisent. Bien entendu, il est possible de se demander en quoi un codeur d'interfaces graphiques peut avoir besoin d'utiliser explicitement les métaobjets dans son code. Il est toujours intéressant de savoir sur quoi est fondé un framework. Quel est le modèle objet utilisé ? Que sont les métaobjets ? Ce sont des questions auxquelles cet article a pour but de répondre. -
Le type QVariant peut s'étendre à d'autres propres types que ceux proposés par Qt, il suffit pour ce faire de suivre ces quelques instructions. -
Ce tutoriel a pour but de vous présenter l'utilisation des expressions régulières, ainsi que la façon de les mettre en ?uvre avec Qt. -
Le mécanisme des signaux et slots de Qt est très avancé et permet de communiquer entre les threads. Cela est unique pour le moment et est aussi la cause de l'existence de moc et de l'utilisation de qmake pour construire les projets Qt. -
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 avec les chaînes de caractères avec SIMD? ou pas
par Thiago Macieira, 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 : Qt Core. -
Qt et les chaînes de caractères : chaînes et SIMD, la revanche (de Latin1)
par Thiago Macieira, Thibaut CuvelierLa 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. -
Qt et les chaînes de caractères : QString et Unicode, optimisation de QString::fromUtf8
par Thiago Macieira, 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, 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. -
On va aborder les threads, dont on a tendance à abuser en général, ce qui peut conduire à des problèmes par la suite. Cela n'apportera peut-être pas d'informations pour beaucoup d'entre vous, si ce n'est la majorité, mais on rencontre encore régulièrement des personnes qui font des erreurs sur ces points. -
Le patron de conception du poids mouche est souvent utilisé dans Qt. Un poids mouche (flyweight) est un objet qui minimise l'utilisation mémoire en partageant autant de données que possible avec d'autres objets similaires. Qt utilise de manière extensive ce patron, mais y fait référence sous le nom de partage implicite. -
Implémentation d'une table de hachage à référence faible avec Qt
par Christophe Dumez, Thibaut CuvelierUne table de hachage à référence faible contient des paires clé-valeur sans que l'on puisse les atteindre. On en recense quatre types : la clé est une référence faible ; la valeur est une référence faible ; la clé ou la valeur est une référence faible ; la clé et la valeur sont des références faibles. -
Thread travailleur avec Qt en utilisant les signaux et les slots
par Christophe Dumez, Thibaut CuvelierQt 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. -
Comment organiser automatiquement les différentes sous-fenêtres dans une application Qt ?
par Titta Heikkala, Arnold DumasAvec Qt vous pouvez créer des interfaces avec plusieurs documents (MDI) en utilisant un QMdiArea comme widget principal. Il est l'équivalent de votre gestionnaire de fenêtres, mais pour les sous-fenêtres de l'application. -
Le but de ce document n'est pas de vous enseigner la manière d'utiliser les threads, de faire des verrouillages appropriés, d'exploiter le parallélisme ou encore d'écrire des programmes extensibles : il y a de nombreux bons livres sur ce sujet ; par exemple, jetez un coup d'?il sur la liste des lectures recommandées par la documentation. Ce petit tutoriel est plutôt voué à être un guide pour introduire les utilisateurs dans le monde des threads de Qt 4, afin d'éviter les écueils les plus récurrents et de les aider à développer des codes à la fois plus robustes et mieux structurés.
-
Vous trouvez vos vues graphiques trop statiques ? Vous avez envie de les animer, mais vous ne voulez pas gérer le moteur physique vous-même ? Ce tutoriel vous présente Box2D, qui s'occupe de toute la partie physique et qui peut facilement être utilisé avec Qt. -
Mettre à jour à répétition les représentations matricielles 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. -
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. -
Le problème récurrent d'une IHM gelée pendant de longues opérations est assez courant. Il n'est pas difficile à résoudre, mais vous pouvez le faire de façons différentes : cet article présente un panel des options possibles qui peuvent être utilisées selon la situation à laquelle vous faites face. -
Une fonctionnalité nouvelle et non présentée de Qt 4.5 est les widgets translucides de haut niveau. 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 proposent la translucidité de manière multiplateforme, besoin que propose de combler cet article. -
Les interfaces proposées par défaut par Qt s'intègrent très bien dans l'environnement utilisé, mais certaines applications nécessitent des modifications radicales de l'interface, en partant des bords de la fenêtre jusqu'aux boutons. -
Des composants graphiques peuvent être facilement ajoutés dans vos fenêtres Qt avec Qt WebKit. -
Ce tutoriel est destiné à illustrer l'intégration du moteur 3D Ogre à Qt. Les concepts utilisés ici sont tout à fait utilisables pour d'autres moteurs (comme IrrLicht) et/ou pour d'autres toolkits graphiques (comme WxWidget ou gtkmm). -
Ce tutoriel montre comment il est possible de créer efficacement et rapidement un navigateur avec Qt 4.4 et Qt WebKit. -
La bibliothèque QScintilla permet de colorier syntaxiquement les textes dans Qt. -
Ce tutoriel a pour but de vous présenter la classe QSystemTrayIcon, qui permet d'ajouter facilement un programme à la zone de notification. -
Ce tutoriel explique la manière d'afficher des vidéos dans une fenêtre Qt grâce à l'intégration de MPlayer. -
Ce tutoriel explique la gestion et l'utilisation des boîtes de dialogue avec la bibliothèque Qt. -
L'intégrer de la SDL dans vos fenêtres Qt se fait par le biais d'un composant, développé dans ce tutoriel. -
Améliorer les performances de Qt lors du rendu avec plus de SIMD
par Benjamin Poulain, 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. -
L'architecture modèle-vue-contrôleur (model-view-controler) est un modèle de conception (design pattern) bien connu et beaucoup utilisé lors de la création d'interfaces graphiques. -
Dans ce tutoriel, on va voir comment utiliser la classe QGraphicsItem, qui permet de façon générale d'intégrer des objets dans une scène 2D mais aussi de leur donner un aspect 3D, moyennant quelques astuces. Attention toutefois, ces outils de Qt ne sont pas non plus conçus pour afficher des scènes en 3D, ils ont simplement une bonne souplesse qui permet de réaliser de belles interfaces assez évoluées. -
L'utilisation de couleurs et de polices appropriées pour mettre en évidence différents éléments de programmation et balises de langages aide le cerveau à comprendre les structures de documents. En signalant les erreurs de syntaxes, la coloration syntaxique interactive aide également à réduire le temps utilisé dans le cycle « compiler, exécuter, tester ». La coloration peut même être utilisée pour signaler les erreurs de langages dans les documents sous forme de texte. Avec Qt, ajouter la coloration syntaxique dans un QTextEdit est très simple, c'est ce que ce tutoriel montre. -
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. -
Plusieurs interfaces, même logique, comment Qt les sépare
par Johan Thelin, Louis du Verdier, 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? -
Depuis un long moment, les dispositions standard embarquées avec Qt ont été codées selon les concepts de dispositions en ligne et en grille. Elles sont représentées, d'une part, par QBoxLayout et QGridLayout, classes-filles de QLayout ; d'autre part, par QGraphicsLinearLayout et QGraphicsGridLayout, enfants de QGraphicsLayout. Nous avons donc commencé au début de cette année des recherches sur un nouveau type de disposition. De ces efforts résulte la classe QGraphicsAnchorLayout. -
Une des nouvelles fonctionnalités de Qt 4.5 est une collection de nouvelles méthodes dans QDialog qui rendent plus facile à utiliser les boîtes de dialogue. Ceci inclut les boîtes de dialogue modales (les fiches dans OS X) et les dialogues de « commentaires en direct ». Ils sont venus à la suite d'un réexamen des dialogues, qui a permis de créer une façon plus unifiée de présenter les dialogues et de rendre plus flexible l'utilisation des dialogues natifs - en premier sur OS X et dernièrement sur les autres plateformes. -
Quand on lit des articles à propos de Qt sur des systèmes embarqués sous Linux, la plupart des exemples visibles dans la presse en ligne sont en relation avec des appareils multimédias, des téléphones mobiles ou autres applications graphiques. Une application commune, mais moins utilisée est des panneaux de contrôles, utilisés pour la domotique, les machines industrielles ou les systèmes d'alarme. -
Dans ce tutoriel, vous allez apprendre de façon détaillée, à programmer avec les méthodes de saisies en Qt pour afficher des caractères spéciaux (par exemple, pour des textes en d'autres langues) indisponibles sur le clavier classique latin. -
Dans le tutoriel sur la programmation avec les méthodes de saisie, nous avons appris les concepts généraux des méthodes de saisie dans Qt, et nous avons jeté un coup d'œil en coulisses pour voir comment, dans le système de fenêtres natif, l'évènement associé à l'appui sur une touche circule à travers la pile de saisie de Qt jusqu'à apparaître à l'écran au sein d'un QLineEdit. Dans ce contexte, la méthode de saisie était utilisée pour permettre à l'utilisateur de modifier la saisie (par exemple composer un caractère de langue chinoise à partir d'une saisie Latin1). Aujourd'hui, nous voulons éclairer un autre cas d'utilisation du système de méthode de saisie, à savoir la mise en œuvre d'un clavier virtuel hors processus qui peut être utilisé pour alimenter en texte saisi, des applications Qt quelconques.
-
Ce tutoriel fournit une présentation de la bibliothèque GLC_lib, puis un exemple de programmation d'une application de visualisation 3D OpenGL utilisant GLC_lib. -
Ce tutoriel présente l'utilisation du processeur graphique (GPU) pour créer des applications de rendu 3D et de calculs parallèles multiplateformes sous Qt. Deux API libres et multiplateformes seront utilisées afin de communiquer avec le processeur graphique : OpenGL pour la partie rendu 3D et OpenCL pour le calcul. Un des points-clés de ce tutoriel est la recherche d'optimisation des performances. Différentes méthodes de programmation seront proposées : partant de versions qu'on pourrait qualifier de « naïves », c'est-à-dire simples mais non optimisées, le souci de performances poussera à l'utilisation de techniques d'optimisation permettant souvent d'améliorer considérablement les performances. Un exemple récurrent est utilisé tout au long du tutoriel : la génération de terrain. -
La première chose à faire lors de la conception d'un modèle est de penser à l'intérêt de ce que l'on fait. Dans ce cas, on veut un modèle qui stocke des informations concernant une scène 3D qui peut alors être rendue avec OpenGL et QGLWidget. La scène sera constituée de quelques objets, qui peuvent être définis de différentes manières offertes par la spécification OpenGL. Ce genre de modèle est souvent basé sur des items, la première chose à faire est donc de définir ce que représente un item. Pour des scènes 3D, cela peut être un seul objet (modèle 3D). Au début, un set d'attributs (représentés comme des rôles dans l'implémentation MVC de Qt 4) devrait être défini et ensuite seulement la hiérarchie du modèle. -
Ici, on expliquera quelles étapes doivent être effectuées pour obtenir un modèle OpenGL qui fonctionne et est prêt à fournir des données aux vues. Cet article est divisé en deux parties : ce qu'il faut implémenter pour un modèle en général puis une application au modèle OpenGL. -
Dans la partie précédente de la série, on a défini la structure et les attributs que le modèle encapsule. Maintenant, il est temps de rendre possible le stockage de données dans une structure arborescente. Il y a deux méthodes pour le faire : la dure et la facile. La méthode la plus difficile est d'implémenter toutes les structures de données depuis zéro, alors que la plus facile dérive de QStandardItemModel et réutilise ses méthodes de stockage de données. Dans la plupart des cas, cette dernière méthode devrait fonctionner (cela fonctionne pour tout modèle dont les données sont stockées dans un QVariant), mais cela n'apprend pas grand-chose, on utilisera donc la méthode difficile, qui consiste à créer des structures de données et des méthodes personnalisées pour les utiliser. -
Le framework Interview de Qt se charge du support du paradigme modèle-vue. Il ne gère pas de base la gestion des données distantes. On peut utiliser des solutions basiques, comme les modèles de Qt SQL, mais ces méthodes ne sont pas les plus efficaces. -
Si vous avez déjà utilisé le module OpenGL dans Qt à un moment ou un autre, vous vous êtes peut-être retrouvé à vouloir exécuter une partie d'OpenGL dans un thread séparé. Qt 4.8 apporte de nouvelles fonctionnalités intéressantes. Cet article décrit l'une de ces fonctionnalités, la séparation du code OpenGL dans des threads séparés, pour conserver l'interface utilisateur réactive lors des calculs 3D. -
À travers ce tutoriel, vous allez apprendre à intégrer simplement un widget OpenGL dans une application Qt, grâce au module Qt OpenGL, disponible dans toutes les versions de Qt. Ce tutoriel étendra vos connaissances à ce module de Qt jusqu'à votre premier widget 3D. -
Remplacer les pbuffers par des frame buffer objects dans Qt 5
par Alexandre Laurent, Giuseppe D'AngeloL'utilisation des frame buffer objects peut accélérer le rendu de QPainter. Toutefois, Qt 5 ne le permet pas directement, mais QPainter offre un mécanisme détourné pour y arriver. -
Le but de ce tutoriel est de vous aider à la création de votre toute première application 3D pour BlackBerry 10. -
Qt propose la classe QOpenGLBuffer (anciennement nommée QGLBuffer) pour faciliter la manipulation des différents types de tampons tels que les attributs de sommets ou les tampons d'indices. OpenGL possède aussi un conteneur appelé vertex array object (VAO) pour faciliter la manipulation de ce type de données. -
OpenGL propose sur les plateformes de bureau un outil très pratique nommé requêtes temporelles. Ces derniers permettent de mesurer le temps passé par le processeur graphique à traiter un certain nombre de commandes. En couplant ces outils aux traditionnelles techniques de profilage du processeur, il devient aisé de mettre en évidence les zones d'engorgement du code de rendu. -
Aperçu de Qt 3D 2.0 : présentation générale du futur moteur 3D de Qt
par Thibaut Cuvelier, Sean HarmerQuand Qt était toujours un produit de Nokia, une équipe de développement de Brisbane, en Australie, a eu l'idée de faciliter l'incorporation de contenu 3D dans les applications Qt. Ces événements ont eu lieu en même temps que le développement du langage QML, il était donc naturel que Qt 3D ait une API QML, en plus d'une interface plus traditionnelle en C++, comme les autres modules de Qt.
-
QML fournit plusieurs mécanismes pour donner un style à une interface graphique. Voici trois approches communes. -
Le but de ce tutoriel est de tester l'internationalisation des applications QML. -
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 l'approche à utiliser. -
Un petit tutoriel pour montrer comment changer le curseur de la souris lors du survol d'un bouton dans une application Qt mixte C++/QML. Il n'existe apparemment pas de fonction QML pour changer le curseur de l'application, on le fera donc manuellement. -
Si vous avez entendu parler de la plupart des news de Computex ou d'IDF cette année, vous devez savoir que MeeGo est le petit nouveau dans les bacs, sur lequel reposent bien des attentes, dont le fait qu'on puisse voir MeeGo tourner aussi bien qu'Intel le supportera avec AppUp. Ce que je peux vous dire, c'est que nous aurons MeeGo dans le collimateur sur ce site et que nous vous donnerons de la matière pour vous aider à vous mettre à la page avec MeeGo, ainsi que pour vous aider à développer toutes sortes d'applications cools pour l'OS MeeGo. -
Depuis sa sortie, Qt Quick met en avant la possibilité de séparer la partie graphique de la partie logique d'une application. La partie graphique, l'interface utilisateur, est codée avec QML tandis que la partie logique est codée en C++ avec Qt. Une question que l'on peut alors se poser est la suivante : comment faire communiquer la partie QML avec la partie C++/Qt ? Ce tutoriel a pour objectif de répondre à cette question. -
Qt Quick correspond à une collection de technologies qui sont conçues pour aider les développeurs à créer des interfaces utilisateur intuitives, fluides et à l'apparence moderne, le genre d'interfaces graphiques de plus en plus utilisées sur les téléphones portables, lecteurs média, set-top boxes et autres appareils portables. Qt Quick est constitué d'un ensemble riche d'éléments d'interface utilisateur, d'un langage déclaratif pour la représentation d'interfaces utilisateur, et d'un moteur d'exécution de langage. Une collection d'API C++ est utilisée pour intégrer ces caractéristiques de haut niveau avec les applications Qt classiques. La version 2.1 de l'environnement de développement (EDI) Qt Creator introduit des outils utiles au développement d'applications Qt Quick. Ce livre blanc donne une introduction de Qt Creator et des outils de Qt Quick qu'il propose aux développeurs durant le cycle de vie concernant le développement de l'application. -
L'offre de cette expérience requiert que des designers et des développeurs travaillent plus que jamais ensemble. Finie l'époque où les designers pouvaient encore faire du pixel mapping à tout bout de champ et s'attendre que des développeurs implémentent leur vision. Sont également finis les jours où les développeurs codaient entièrement en faisant attention aux performances, sans jeter un ?il au charme visuel. Le design, le développement et les tests doivent devenir un cycle itératif, non un chemin linéaire. -
Ce petit tutoriel vise à montrer les différents moyens d'interfacer QML avec le C++. On ne rentre pas dans le code C++ qui est supposé connu par le lecteur, on explique les concepts QML et en particulier là où il y a une interaction avec le C++. -
Vous souhaitez ajouter des effets par-dessus vos vidéos ? Ce tutoriel est donc pour vous ! -
Les nouveautés de Qt sont, actuellement, très orientées mobile. De plus, un système d'exploitation mobile est totalement basé sur Qt : MeeGo Harmattan. Tout amateur de Qt disposant d'un périphérique compatible aimera probablement développer l'une ou l'autre application sur son jouet technologique ; tel est le but de ce tutoriel, en utilisant Qt Quick, bijou arrivé dans Qt 4.7. Puisque MeeGo Harmattan ne supporte que Qt 4.7, on n'utilisera que la version 4.7.4 de Qt. -
On va montrer ici comment utiliser ListView pour afficher les données d'un modèle hétérogène. Le problème, ici, est que, en fonction du type de données, on aura un affichage différent, on utilisera donc différents délégués. Le truc est l'utilisation d'un délégué capable de détecter le type de données et ainsi adapter son affichage. -
Bien qu'il puisse sembler que l'utilisation de deux ListView soit assez courante, elle n'est pas actuellement documentée dans un exemple QML. Ces derniers ne considèrent qu'une ListView par écran, qui a les mêmes dimensions que cet écran et autorise les interactiosn pour naviguer dans son contenu. Au cas où on a besoin de plusieurs ListView l'une au-dessus de l'autre, cela devient plus délicat et le code doit être adapté. -
Bien que ce cas d'imbrication puisse sembler rare en pratique, le fait que QML 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). -
Au lancement d'une application sur un périphérique mobile, il est souvent utile de détecter l'orientation de l'écran pour adapter la disposition visuelle. Malheureusement, QML n'est pas encore capable de détecter cette orientation lui-même. Ce tutoriel explique comment utiliser l'API de capteurs de Qt Mobility (Sensors) en QML. -
Comme déjà montré, les applications Qt Commercial en C++ et Qt Quick sont utilisables sans aucun problème ni modification sur la préversion pour développeurs de Windows 8. Ici, on montrera, avec plus de détails, comment des applications Qt peuvent adopter un style Metro. Les exemples seront des applications Qt normales dont le style aura été adapté pour ressembler à des applications Metro. -
La plupart des exemples QML actuels sont exclusivement écrits en QML et JavaScript, probablement pour les garder simples. Cependant, dans une application réelle, pour des raisons de performances, il est recommandé d'écrire autant de code que possible en C++ et de n'utiliser QML que pour l'interface utilisateur. Au final, il est important de savoir comment utiliser un modèle C++ en QML. -
Quelques trucs et astuces assez simples permettent d'améliorer les performances de QML, les voici résumés dans un article. -
Le but de Scene Graph n'est pas tant d'offrir de nouvelles fonctionnalités, mais bien de changer l'infrastructure de base des outils graphiques afin de s'assurer que Qt et le QML soient plus efficaces. -
Cette série explorera les entrailles de QML et les mécaniques internes de son moteur d'exécution. Elle repose sur la version Qt Quick 2.0, disponible avec Qt 5.0. -
Présentation des mises en page avec Qt Quick du nouveau module Layout de Qt 5.1
par Jan Arve Sæther, Arnold DumasLorsque l'on veut développer une application reposant sur QML dans laquelle l'interface utilisateur répond bien aux redimensionnements, les outils offerts par Qt Quick sont quelque peu limités pour le moment. Cependant il sera possible avec Qt 5.1 de profiter de nouvelles mises en page : RowLayout, ColumnLayout et GridLayout. -
Afficher un PDF dans une application QML en utilisant la visionneuse par défaut de pdf.js
par Charles-Élie GentilIl existe plusieurs méthodes permettant d'afficher un PDF dans une application Qt, donc de facto dans une application QML. Ce billet propose d'utiliser pdf.js et sa visionneuse par défaut que cet outil propose (notamment utilisée par Firefox). -
Création dynamique d'une courbe et interactions en QML à l'aide du composant Canvas
par Charles-Élie GentilLe composant Canvas de Qt Quick peut servir à créer des courbes, notamment dynamiquement, c'est-à-dire avec une liste de points créée à l'exécution. -
Utilisation des fichiers de configuration en QML en se servant du composant Settings
par Charles-Élie GentilLe développement d'un programme ou d'une application nécessite parfois l'utilisation de fichiers de configuration. L'API de QML offre un composant permettant de faire ceci très simplement : Settings. -
Interaction entre C++ et QML : une solution mettant en avant la facilité pour appeler une fonction C++
par Charles-Élie GentilLa communication entre Qt Quick et C++ est parfois vue comme un sujet diabolique. Ce billet montre sans expliquer une technique simple pour appeler une fonction C++ depuis une interface Qt Quick. -
Intégration de code OpenGL dans des applications Qt Quick 2, l'organisation du moteur de rendu
par Giuseppe D'Angelo, Thibaut CuvelierPour bon nombre d'applications dans l'industrie, l'intégration de code OpenGL dans des interfaces Qt Quick 2 est un besoin récurrent ? par exemple, pour afficher des contrôles Qt Quick (comme des boutons, des curseurs de défilement) par-dessus une visualisation OpenGL existante. Cette série d'articles est tirée de la présentation du même nom, donnée par Giuseppe D'Angelo lors du Qt World Summit. Elle a reçu un accueil très chaleureux, ce qui a poussé son auteur à la transformer en une série d'articles.
-
Ce tutoriel s'adresse aux utilisateurs de Firebird et d'InterBase souhaitant développer un applicatif Qt autour de leur SGBD préféré. -
La méthode générale pour installer l'extension QMYSQL est de recompiler entièrement Qt ; or, il existe une technique moins lourde. -
Ce tutoriel montre comment utiliser la couche d'accès aux données de Qt, comment s'en servir de source de données pour des éléments graphiques et aller plus loin en s'en servant dans la conception d'une application. -
QxOrm est une bibliothèque C++ de gestion de données (correspond objet-relationnel ou ORM) basée sur les frameworks Qt et boost. Le tutoriel qxBlog présente les principales fonctionnalités de la bibliothèque QxOrm avec la création d'un projet de gestion de blogs en C++. -
Les modèles de données : tables SQL contre bases de données orientées texte
par Mark Summerfield, charlespfLes éléments de Qt 4 concernant les classes de vues sont très simples à utiliser pour présenter les données provenant de différentes sources, dont les bases de données SQL, dans la même vue. Ces classes utilisent l'approche modèle-vue. Cet article présente une vue qui peut être peuplée avec des données d'une table SQL ou d'un fichier plat personnalisé. -
Suite à beaucoup de questions posées sur le forum sur la compilation du pilote MySQL pour Qt, voici un petit tutoriel pour vous guider tout le long de cette démarche. -
Ce tutoriel détaille les différentes étapes pour installer un environnement de développement avec Qt, boost et la bibliothèque QxOrm sous Windows, chaque bibliothèque étant compilée en mode 32 bits (la procédure sera similaire pour développer en mode 64 bits). -
QxOrm est une bibliothèque C++ de gestion de données (correspondance objet-relationnel ou ORM) basée sur les frameworks Qt et boost. Le tutoriel qxClientServer présente le module QxService de la bibliothèque QxOrm avec la création d'un serveur d'applications en Qt/C++.
-
Ce tutoriel présente l'utilisation du réseau avec Qt, principalement à l'aide de TCP. -
Qt et Zeroconf ou l'utilisation de services réseau sans configuration
par Trenton Schultz, charlespfBonjour est l'implémentation d'Apple concernant le réseau sans configuration (Zeroconf), grâce auquel plusieurs applications offrent leurs services à un réseau local. Utiliser Bonjour simplifie grandement la découverte et l'utilisation des services réseau. Dans ce tutoriel, on créera des objets Qt pour manipuler les différentes parties de Bonjour et ensuite on les utilisera dans des exemples d'applications réseau avec Qt.
-
Le format XML connaît aujourd'hui une popularité grandissante : lisible par tous, il permet l'échange de données entre machines ou entre applications (par exemple, Qt Designer sauvegarde ses fichiers .ui au format XML). Pour écrire ou lire un document XML, il existe différentes méthodes. -
Bienvenue dans le minitutoriel pour apprendre à utiliser Qt XML pour utiliser des données XML dans une application Qt. Nous y apprendrons à utiliser le XML via DOM !
-
Que 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.
-
PyQt est une couche de compatibilité Python pour le framework graphique multiplateforme Qt (en C++). Ce tutoriel a pour but de s'initier au développement rapide d'applications avec Python et Qt. -
PyQt est une couche de compatibilité Python pour le framework graphique multiplateforme Qt. PySide est un binding très proche, édité par Nokia, disponible sous LGPL ? raison de son apparition. -
Superhybrides Python et Qt en C++ ou le meilleur des deux mondes
par Oleksandr Iakovliev, Thibaut CuvelierPython est un langage qui permet de prototyper rapidement des applications. Il n'est pas toujours suffisamment rapide pour certaines applications, notamment du côté de PyQt ou de PySide, bindings Python de Qt. À ce moment-là, on peut commencer à migrer du code vers le C++ : ici sera montrée une technique qui permet d'appeler du code C++ depuis un script Python.
-
Le 12 octobre 2009, durant les Qt Developpers Days 2009 à Munich, Nokia lancé une première certification basique sur Qt pour que les développeurs utilisant ce framework valident leurs compétences sur cette technologie. Le 11 octobre 2010, au cours du même événement, Nokia sort deux certifications Qt avancées en préversion qui seront disponibles dans les centres de test au début de l'année 2011. Les certifications font maintenant partie de la formation des développeurs Qt et sont un passage obligé pour prouver et valider ses connaissances. -
Qt fournit divers outils pour aider à la traduction d'application, mais ils sont assez souvent mal utilisés, mal compris? Cette conférence tente d'en faire le tour ainsi que des utilisations un peu plus extrêmes et des problèmes fréquemment rencontrés. -
Le module Qt Test permet de réaliser simplement ses tests unitaires et benchmark avec le framework Qt. -
Qt est un outil fabuleux disposant de kits d'intégration pour divers EDI dans sa version commerciale, mais quasiment aucun pour sa version libre. Ce tutoriel cherche à vous faciliter l'intégration de Qt avec Apple Xcode pour OS X. -
Vous avez toujours rêvé de savoir à quoi correspondaient les noms 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. -
Dix minutes pour géolocaliser. Vous avez tous fait des bases de données contenant l'adresse, le code postal et la ville d'un client ou d'un utilisateur. Grâce à GoogleMaps, quel que soit votre langage de programmation, vous pouvez accéder à une carte de localisation. -
Les 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 flopée.
Après la description de tous ces pointeurs intelligents, un approfondissement du dernier arrivé, QScopedPointer, sera effectué. -
Alors que beaucoup sont enthousiastes au sujet des technologies QML et JavaScript, quelques-uns 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é. -
Bien que Qt facilite le développement d'applications multiplateformes, cela ne signifie pas que nous fournissons exclusivement des fonctionnalités qui sont communes à toutes les plateformes. En effet, lorsque cela est possible, des fonctionnalités spécifiques à la plateforme sont exposées, tout en veillant à ce qu'elles ne sortent pas du cadre de nos API multiplateformes : ceci est particulièrement vrai pour Qt sous OS X. -
Basé sur la présentation de Volker Krause, employé chez KDAB, menée durant les Qt Developper Days 2011 à Munich, cet article retrace et détaille les différents outils présentés durant la conférence, pouvant aider au débogage d'applications Qt et Qt Quick. -
La sortie de Qt 5.1 est prévue en release candidat pour le 27 mai. Cette version propose le support d'Android et iOS, bien qu'il était déjà possible de porter sur Android avec Qt 4.8 et le projet Necessitas. Je vais vous présenter ici comment créer une application Qt pour Android sous Ubuntu 13.04. -
Développer une application mobile avec une courbe d'apprentissage très courte. Première partie : l'outil, l'EDI et les bibliothèques. -
Dans l'article précédent, nous avons installé les prérequis : SDK, EDI et bibliothèques ; dans cette seconde partie, nous allons entrer dans le vif du sujet : l'écriture d'un jeu sur mobile.
La rubrique Qt de Developpez.com : actualités, nouveautés, annonces Les meilleurs tutoriels sur PyQt 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 Qt Les meilleurs livres sur Qt critiqués par la rédaction La TV Qt