Suite à beaucoup de questions posées sur le forum sur la compilation du driver MySQL pour Qt, voici un petit tutoriel pour vous guider tout le long de cette démarche.
Archives pour la catégorie Qt
Un navigateur de fichiers basé sur une QListBox
Cet article présente FileBrowser, une sous-classe de QListBox grâce à laquelle l’utilisateur navigue dans ses répertoires et fichiers. Par rapport à QFileDialog, qui s’ouvre dans une fenêtre modale, le widget FileBrowser peut s’embarquer dans la fenêtre principale ou dans une boîte de dialogue d’une application, ce qui peut donner un avantage pour la navigation.
Plusieurs ListView superposées en QML
Bien qu’il puisse sembler que l’utilisation de deux ListView soit assez courante, elle n’est pas documentée actuellement dans un exemple QML. Ces exemples QML ne considèrent qu’une ListView par écran, qui a les mêmes dimensions que cet écran et est flickable 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é.
Adieu qmake, bienvenue qbs !
Outil ô combien utile à tout développeur Qt… et pourtant ô combien détesté ! Il fonctionne bien, mais n’est pas la partie la plus maintenable de Qt. On a déjà exploré ce que tout remplaçant potentiel de qmake doit être à même de faire (et une liste de commentaires et questions à ce sujet). Notamment, toute une série d’outils actuellement disponibles ont été étudiés, aucun ne remplissait totalement ce cahier des charges (la discussion a bien continué pour Qt 5 sur la mailing list). C’est pourquoi un projet interne à l’équipe de développement de Qt a été lancé pour tester l’une ou l’autre idée, d’où un tout nouvel outil : la Qt Build Suite, qbs, à prononcer cubes.
C’est tout sauf qmake : pas de lien à la version de Qt, génération d’un graphe de compilation propre à partir de la description de haut niveau du projet, plus de génération de Makefile suivi d’un appel à make/nmake/gmake ou autre. En lieu et place, qbs agit comme un make parallèle, il appelle directement le compilateur, l’éditeur de liens et tout autre outil utile à la compilation du projet (à la manière de SCons ou Ant).
C’est un nouveau langage déclaratif : après QML, l’environnement Qt semble se mettre à la mode déclarative. En réalité, le langage utilisé par qbs est une version allégée de QML. Il fournit une représentation facile à utiliser pour l’EDI, tout en laissant la liberté d’écrire des expressions JavaScript. L’éditeur de fichier de projet devrait gérer lui-même toutes les listes de chaînes littérales et, pour les constructions plus compliquées, n’agir qu’en tant qu’éditeur de texte (ces expressions n’étant requises que si l’on a besoin de plus de puissance… et laissant alors littéralement tout faire, au vu de l’extensibilité). Par exemple :
Utiliser un modèle de liste C++ en QML
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.
QML ne fournit de support direct que pour les modèles de liste pour le moment (comme QAbstractListModel, à cause des vues actuellement supportées (ListView, GridView…).
Le but de cet article est de montrer une manière facile d’utiliser un modèle de liste en C++ en QML au lieu d’un modèle QML comme ListModel.
Apercevoir la troisième dimension ou l’utilisation multitheadée d’OpenGL avec Qt
Le 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.
Partage de données explicite et implicite avec Qt
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.
Créer des applications avec un style Metro avec Qt, exemples en QML et C++
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.
Orientation de l’écran en QML
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. Cet article explique comment utiliser l’API de capteurs de QtMobility (Sensors) en QML.
Implémentation d’une table de hachage à référence faible avec Qt
Une 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.
Dans cet article, on propose une implémentation basée sur Qt pour le second type : une table de hachage où la valeur est une référence faible. Ceci signifie qu’une paire clé-valeur sera automatiquement enlevées de la table dès que la valeur ne sera plus utilisée dans le programme.
Ce type de structure est utile pour réduire l’utilisation mémoire en partageant les structures de données sans fuite de mémoire.
Implémentation d’une table de hachage à référence faible avec Qt