- QT
- AbulEduApplicationV1
- AbulEduAproposV1
- AbulEduAudioV1
- AbulEduButtonListV1
- AbulEduCameraV1
- AbulEduCameraWidgetV1
- AbulEduConstantesV1
- AbulEduEditeur
- AbulEduGraphicsEtiquetteV1
- AbulEduIdentitesV1
- AbulEduInstructionV1
- AbulEduMediaplayerV1
- AbulEduMediathequeGetV1
- AbulEduMenuFeuilleV1
- AbulEduNumericLinearPadv1
- AbulEduQRCodeReaderV1
- AbulEduSingletonV1
- AbulEduSlideWidgetContainerV1
- AbulEduStackedWidgetV1
- AbulEduTexteV1
- AbulEduTextV1
- AbulEduTutorialV1
- AbulEduVirtualKeyboardV1
- AbulEduVisionneuseImageV1
- AbulEduWidgetAssistantEtapesV1
- Affichage des messages d'erreurs
- Affichage dynamique des étapes d'un éditeur
- Bouton croix de fenêtre
- Centrer une fenêtre
- Création fichierdossier temporaire unique
- Créer une AbulÉduApplicationV1 dans QtCreator
- Framework Graphic View
- Framework Graphic Viewodt
- Framework State Machine
- Générer automatiquement un dictionnaire de verbes
- Gérer la modalité des fenêtres
- Gestion des arguments
- Getters par référence et non par valeur
- Installation Qt5
- Installation Qt56
- Normalisation des modules
- Partager des variables avec différents pri
- Redimensionnement application Qt
- Redimensionner un QGraphicsSvgItem
- Tests et Logs sous Windows
- Utilisation de l'assistant AbulEduApplicationV1
- Utiliser des QSharedPointer
Migration des projets vers QTCreator 2.x¶
Note : L'ensemble des informations qui suivent sont liées à une installation de QTCreator sur un PC sous Linux, équipé de la version 10.10 (Maverick Merkat) d'Ubuntu.
Il est toutefois probable qu'elles restent pertinentes dans le cas d'une première installation de l'environnement de développement sur des postes Windows ou Mac OSX.
Installation de QTCreator¶
Sous Ubuntu 10.10 (Maverick Merkat) et plus¶
Ouvrir un terminal est lancer la ligne de commande suivante :
sudo apt-get install qt4-qmake qtcreator build-essential libqt4-dev g++
Le premier lancement est généralement bien plus long que les suivants pour cause de mise en place des exemples, de la documentation, etc.
Sous Windows¶
Télécharger l'exécutable nommé Qt Creator 2.0.1 Binary for Windows (46 MB) se trouvant sur cette page : http://qt.nokia.com/downloads
Le reste doit être classique pour quelqu'un d'habitué à Windows (merci de documenter si vous le faites)
Sous Mac OSX¶
Télécharger l'exécutable nommé Qt Creator 2.0.1 Binary for Mac (82 MB) se trouvant sur cette page : http://qt.nokia.com/downloads
Le reste doit être classique pour quelqu'un d'habitué à Mac OSX (merci de documenter si vous le faites)
Configuration initiale de QTCreator¶
Un changement à eu lieu dans la configuration par défaut de QTCreator au passage entre 1.x et 2.x; il concerne l'option Shadow Build.
Cette option permet de définir plusieurs configurations et produire le résultat de compilation, un répertoire distinct des sources pour chaque système cible.
cette option était désactivée par défaut sur la version 1.2 (1.3 ?), elle est active par défaut sur la version 2.0.
La conséquence est que l'ensemble des fichiers produits, dont l'exécutable, sont dans un répertoire différent des sources (ce n'était pas le cas sur mon installation 1.2).
Il faut donc décocher cette option :
Et c'est à faire pour chaque projet.
Impacts sur le code¶
Erreur : "call of overloaded ‘QString(int)’ is ambiguous"¶
Elle est liée à la permissivité des versions de QT précédentes (la version utilisée à partir d'Ubuntu 10.10 est Qt 4.7) qui acceptaient qu'un QString soit initialisé à la chaine vide par l'affectation d'un zéro.
Quand cette erreur est relevée par le compilateur, il faut trouver, soit dans le code (fichiers .cpp) soit dans les prototype de méthodes (fichiers .h), l'endroit de l'affectation d'une valeur nulle à un QString et la remplacer explicitement par une chaine vide.
Par exemple, dans le programme "Calcul mental", les constructeurs de 'baudruche' avaient tous le même souci :
baudruche(int pts, QPoint pos, QWidget* parent=0,QString image=0);
L'initialisation de la dernière propriété doit être modifiée :
baudruche(int pts, QPoint pos, QWidget* parent=0,QString image="");
Erreur : "Class X implements the interface QGraphicsItem but does not list it in Q_INTERFACES."¶
Probablement un autre problème de permissivité déclarative des versions antérieures de Qt. Le remède est simple; dans le .h où est définie la classe, rajouter au début de la déclaration la ligne :
Q_INTERFACES(QGraphicsItem)
Par exemple, dans le cas de boutonspolygone.h, on obtient :
class boutonsPolygone : public QPushButton, public QGraphicsItem { Q_OBJECT Q_INTERFACES(QGraphicsItem) public: boutonsPolygone(QString,int=0);// void deplace(int,int); ...