Soutenez-nous
FAQ Qt FAQ Qt Creator FAQ PyQt & PySide

La FAQ pour la programmation C++ avec QtConsultez toutes les FAQ

Nombre d'auteurs : 25, nombre de questions : 223, dernière mise à jour : 25 août 2012 

 
OuvrirSommaireIntroduction à Qt4 et généralités

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 rende accessible depuis Java, Python, Ruby, PHP...

Le framework est composé de plusieurs modules qui vous permettront de faire :

Dans le framework vous pouvez retrouver (liste non-exhaustive) :

  • les bibliothèques pour la compilation ;
  • QMake (outil de création de Makefile pour les projet Qt) ;
  • QtDesigner ;
  • QtCreator (un EDI spécialement conçu pour Qt) ;
  • localisation des applications :
    • QtLinguist (outil de traduction d'application Qt) ;
    • lrelease ;
    • lupdate ;
    • lconvert.
  • QtSimulator (test des applications pour les plateformes mobiles) ;
  • des programmes d'exemples ;
  • etc.

Vous pouvez découvrir en détail ce framework dans la section Qt de developpez.com ou simplement 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 connus 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.
Créé le 7 mai 2012  par Alexandre Laurent, Jonathan Courtois

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.).
Mis à jour le 7 mai 2012  par Matthieu Brucher, Yan Verdavaine, Benjamin Poulain

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é.

Mis à jour le 7 mai 2012  par Alp Mestan

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 professionels 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.

Mis à jour le 7 mai 2012  par Thibaut Cuvelier

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. Vous pouvez retrouver ce blog 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.

Créé le 7 mai 2012  par Thibaut Cuvelier

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.

Créé le 7 mai 2012  par Thibaut Cuvelier

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 fonction au dessus de Qt.

Des traductions d'articles de ce blog sont disponibles sur Developpez.com.

Créé le 7 mai 2012  par Thibaut Cuvelier

Tout d'abord, Qt4 propose 2 types d'en-têtes : les en-têtes standards 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.

 
Sélectionnez
#include <QString>

Par défaut, les fichiers d'en-tête se trouvent dans les frameworks sous Mac OS X (/Library/Frameworks), dans les includes sous Linux (généralement dans /usr/include/qt4), et dans le repertoire où Qt est installé sous Windows (généralement dans C:\Qt\4.x.x\include). Pour compiler une application Qt, vous pouvez utiliser qmake, qui définira ces chemins pour vous.

Mis à jour le 7 mai 2012  par Matthieu Brucher, Alp Mestan, Benjamin Poulain

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 !) les tutoriels Débuter dans la création d'interfaces graphiques avec Qt 4 et Carnet d'adresses. Qt introduit de nombreux concepts pour faciliter la programmation graphique, et lire le tutoriel peut vous être utile, même si vous avez déjà utilisé une bibliothèque graphique.

Pour essayer les exemples du tutoriel, il faut un environnement de développement configuré pour utiliser Qt. Le plus simple pour commencer est d'utiliser le Qt SDK (Qt avec un EDI, QtCreator, et un compilateur, MinGW) ou d'installer Qt et d'utiliser Monkey Studio ou QDevelop.

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é QtDemo, celui-ci est rempli d'exemples avec leur code source.

Mis à jour le 7 mai 2012  par Benjamin Poulain

Lien : Tutoriel : installez Qt sur Mac avec Xcode ou QtCreator
Lien : Tutoriel : installez Qt 4.4.3 facilement et compilez vos applications

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.

 
Sélectionnez
// 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.

Mis à jour le 7 mai 2012  par Alp Mestan

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 suivant :

  • 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.


Lien : Quelle est la licence d'utilisation de Qt 4 ?

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.

Créé le 7 mai 2012  par Alexandre Laurent

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.

Créé le 7 mai 2012  par Alexandre Laurent
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.