Projet

Général

Profil

Migration des projets vers QTCreator 2.x

A propos de la Version 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 :

Décocher le Shadow Build

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);
...

À_propos_de_Qt_Creator_2.png - A propos de la Version 2.x (37 ko) Christophe, 26/10/2010 00:28

Qt_Creator_ShadowBuild.png - Décocher le Shadow Build (142 ko) Christophe, 26/10/2010 00:28

Redmine Appliance - Powered by TurnKey Linux