FAQ Qt
FAQ QtConsultez toutes les FAQ
Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021
- Qu'est-ce que Qt ?
- Quels applications et produits utilisent Qt ?
- Quelle est la licence d'utilisation de Qt 4 ?
- Où trouver la documentation de Qt ?
- Que sont les Qt Quarterly ?
- Que sont les Qt Labs ?
- Qu'est-ce que le Qt Developer Network ?
- Qui est Digia ?
- Quels sont les chemins des en-têtes à inclure lors de la compilation ?
- Comment débuter avec Qt ?
- Est-ce compliqué d'utiliser Qt 4 ?
- Quels sont les avantages de l'édition commerciale ?
- Un développeur quitte l'entreprise, peut-on transférer la licence Qt à un autre développeur ?
- Peut-on développer des applications commerciales avec PerlQt, PyQt ou tout autre wrapper ?
- 1.1. Contribuer (1)
Qt est loin de la bibliothèque graphique que beaucoup imaginent. Les interfaces graphiques sont la caractéristique principale pour laquelle il est connu. Qt est un framework complet et multiplateforme avec lequel tous types d'applications pourront être réalisées. Développé en C++, il dispose de nombreux bindings qui le rendent accessible depuis Python, Java, Ruby, PHP, C#…
Le framework est composé de plusieurs modules qui vous permettront de faire :
- des interfaces utilisateurs avancées ;
- des programmes utilisant OpenGL ;
- des programmes avec plusieurs threads ;
- des programmes pour les systèmes embarquées ;
- des programmes gérant des bases de données ;
- des programmes utilisant le réseau ;
- des programmes naviguant sur Internet ;
- des programmes ayant des graphismes 2D ;
- des moteurs de scripts ;
- des programmes multimédia ;
- etc.
Dans le framework, vous pouvez retrouver (liste non exhaustive) :
- les bibliothèques, utilisées pour la compilation ;
- QMake (un outil de gestion de la compilation pour les projets Qt) ;
- Qt Designer (un outil de création d'interfaces graphiques par glisser-déposer) ;
- Qt Creator (un EDI spécialement conçu pour Qt) ;
- traduction des applications, avec Qt Linguist (outil de traduction d'application Qt), lrelease et lupdate ;
- des programmes d'exemple ;
- etc.
Vous pouvez découvrir en détail ce framework dans la rubrique Qt de developpez.com ou sur le site officiel de Qt.
Lien : Quels applications et produits utilisent Qt ?
Lien : Quelle est la licence d'utilisation de Qt 4 ?
Lien : Où trouver la documentation de Qt ?
Lien : Comment débuter avec Qt ?
De nombreux développeurs utilisent Qt. Voici une courte liste d'applications connues utilisant Qt :
- VLC ;
- Google Earth ;
- Skype ;
- KDE ;
- Adobe Photoshop Elements ;
- Autodesk Maya ;
- DAZ 3D ;
- etc.
Il existe aussi des produits se basant sur Qt :
- des téléphones portables (OS Symbian et MeeGo) ;
- des GPS pour voitures (Bury) ;
- des cadres numériques de Samsung (SPF-105V) ;
- des télévisions (TCL MiTV) ;
- des netbooks (ASUS EeePC) ;
- des lecteurs de livre numérique (Asus DR-950) ;
- des boîtiers média (Roku) ;
- etc.
Depuis la version majeure 4.5, Qt 4 est distribué sous trois licences :
- commerciale : vous permet de faire ce que vous voulez avec le code de Qt et votre code ;
- GPL V3 : tout code développé avec la version GPL de Qt doit aussi être GPL. Tout le code doit donc être accessible aux utilisateurs de l'application. C'est la licence généralement choisie pour les projets open source ;
- LGPL v2.1 : similaire à la GPL, mais si Qt est lié dynamiquement à votre application, le code de votre application peut être fermé/propriétaire. Les modifications sur les sources de Qt seront obligatoirement LGPL. Avec cette licence, l'utilisateur doit avoir la possibilité de remplacer Qt par sa propre version. Cela n'est généralement un problème que lorsque Qt est intégré directement dans un appareil (télévision, GPS, etc.).
Lien : Les licences Qt sur le site de Digia
Lien : GPL
Lien : LGPL
La rubrique Qt de Developpez.com propose un projet de traduction de la documentation officielle. Elle comporte déjà un grand nombre de traductions.
Une documentation officielle plus qu'exhaustive pour chacune des versions de Qt est proposée par Nokia. Le sommaire de toutes ces documentations se trouve ici : Online Reference Documentation
De plus, chaque version de Qt est distribuée avec un outil permettant de parcourir la documentation : Qt Assistant. La version de la documentation accessible avec Qt Assistant correspond à la version de Qt avec laquelle il a été distribué.
Qt Quarterly est une revue électronique trimestrielle proposée par Nokia à destination des développeurs et utilisateurs de Qt. Vous pouvez retrouver les articles sur le site de Nokia.
La rédaction Qt de Développez vous propose la traduction de certains articles, leur nombre augmentera régulièrement.
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. Certains essais font l'objet de publications sur le blog de Qt.
La rédaction Qt de Développez vous propose la traduction de certains articles, leur nombre augmentera régulièrement.
Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Vous pouvez le retrouver sur le site de Nokia.
La rédaction Qt de Développez vous propose la traduction de certains articles du wiki, leur nombre augmentera régulièrement.
Digia est le distributeur exclusif de licences commerciales dans le monde entier pour Qt ainsi qu'un leader mondial reconnu dans l'écosystème Qt, engagé dans son avenir en étant le principal moteur de la R&D (recherche et développement) pour ce framework sur les plateformes embarquées et de bureau. Les services et produits commerciaux de Qt, dont Digia est le pionnier, fournissent aux entreprises et développeurs possédant la licence commerciale un point d'entrée unique pour le développement, le support, le conseil, la formation et les licences. Notamment, ils éditent un blog technique sur les problèmes fréquemment posés et développent de nouvelles utilisations du framework (comme des interfaces pour voitures). Par ce support commercial, ils sont amenés à corriger des bogues, voire à sortir de nouvelles versions pour des séries précédentes avec binaires ainsi que développer des nouvelles fonctionnalités et fonctions au-dessus de Qt.
Des traductions d'articles de ce blog sont disponibles sur Developpez.com.
Tout d'abord, Qt propose deux types d'en-têtes : les en-têtes standard, avec un .h comme extension, et les autres, sans extension.
Pour que la compilation se déroule correctement, il faut que le chemin vers les en-têtes de Qt soit inclus dans la liste des dossiers à parcourir pour les en-têtes, mais aussi chacun des sous-dossiers des bibliothèques que vous utiliserez.
Enfin, il faut savoir que, pour chaque classe de Qt, il existe un en-tête qui porte le même nom que la classe. Si, par exemple, vous utilisez QString, il faut un include de ce genre.
#include
<QString>
Par défaut, les fichiers d'en-tête se trouvent dans les frameworks sous macOS (/Library/Frameworks), dans les includes sous Linux (généralement dans /usr/include/qt) et dans le répertoire où Qt est installé sous Windows (généralement dans C:\Qt\5.x.x\include). Pour compiler une application Qt, vous pouvez utiliser qmake, qui définira ces chemins pour vous.
Qt est un framework orienté objet qui se base sur le langage C++. Pour bien profiter de Qt, il vaut donc mieux commencer par apprendre les bases de C++ et de la programmation orientée objet.
Sur ces bases, un bon départ est de lire (et appliquer !) le tutoriel Débuter dans la création d'interfaces graphiques avec Qt 4. Qt introduit de nombreux concepts pour faciliter la programmation graphique (comme les signaux et slots) et lire le tutoriel peut vous être utile, même si vous avez déjà utilisé une autre bibliothèque graphique.
Pour essayer les exemples du tutoriel, il faut un environnement de développement configuré pour utiliser Qt. L'installateur de Qt vient avec Qt, un compilateur si nécessaire et un environnement de développement (Qt Creator), c'est-à-dire tout ce qu'il faut pour démarrer efficacement.
Lorsque vous avez acquis les concepts du tutoriel, vous pouvez continuer avec les exemples de Qt. Chaque version de Qt est distribuée avec un logiciel nommé Qt Demo, celui-ci est rempli d'exemples avec leur code source.
En réalité, utiliser Qt est plus simple qu'on ne le pense. En effet, le code suivant affiche un bouton qui ferme l'application lorsque l'on clique dessus, et pourtant il ne fait que 13 lignes.
// Nécessaire pour créer une application avec Qt
#include
<QApplication>
// Nécessaire pour pouvoir créer un bouton
#include
<QPushButton>
// La fonction main() habituelle
int
main(int
argc, char
**
argv)
{
// Qt récupère les arguments passés au programme
QApplication
app(argc, argv);
// on crée notre bouton, intitulé "Hello World"
QPushButton
quit("Hello World!"
);
// on le redimensionne
quit.resize(300
, 40
);
// on change la police et la taille
quit.setFont(QFont
("Arial"
, 18
, QFont
::
Bold));
// on explique à Qt que l'application doit se terminer lors du clic
//sur le bouton créé précédemment
QObject
::
connect
(&
quit, SIGNAL
(clicked()), &
app, SLOT
(quit()));
// on affiche le bouton
quit.show();
// on laisse Qt gérer le code de retour du programme
return
app.exec();
}
Comme vous pouvez le voir, il est très simple de gérer ses composants. Pour en découvrir plus, il est bon de consulter la documentation et les exemples de Nokia, ainsi que les tutoriels et la traduction de la documentation officielle présents sur la rubrique Qt de Developpez.com.
La licence commerciale de Qt est le meilleur choix pour le développement de logiciels propriétaires et/ou commerciaux avec Qt lorsque vous ne voulez pas redistribuer le code source. Avec cette version vous pouvez :
- utiliser, modifier et redistribuer Qt sans aucune obligation de partager votre code source ;
- bénéficier du support technique ainsi que des mises à jour ;
- profiter d'une plus grande liberté dans le choix de la licence de votre application.
Si vous souhaitez ne pas publier votre code source, la licence commerciale devient une obligation dans les cas suivants :
- si Qt est lié statiquement avec votre application ;
- si vous utilisez une version modifiée de Qt.
De plus, elle permet un accès complet aux bibliothèques de la solution Qt, des composants et outils qui peuvent être utilisés avec le framework Qt afin d'aider nos clients à réduire encore plus leurs temps de développement. Nokia est en train de réfléchir à la possibilité d'offrir toute la solution Qt sous la licence LGPL.
Oui. Les licences Qt sont réservées à l'usage d'un développeur défini. Si ce développeur quitte l'entreprise ou passe à un projet n'impliquant pas Qt, un autre développeur peut prendre cette licence. On peut changer le nom du développeur utilisant cette licence à n'importe quel moment, mais on ne pourra plus le rechanger pendant six mois.
Il est important d'informer Digia à propos des informations sur les licences afin que celui-ci donne le meilleur support à ces utilisateurs.
Oui, avec la licence commerciale ou la LGPL. Les conditions de la licence sont les mêmes que ce soit pour l'utilisation de la bibliothèque Qt en C++ ou par le biais d'un wrapper pour un langage de programmation différent. Tout développeur qui écrit du code appelant la bibliothèque Qt (directement ou avec un wrapper) a besoin d'une licence Qt.