Posts Tagged ‘Qt Creator’

Programme en mode console avec Qt Creator

Thursday, February 4th, 2010

Lorsqu’on souhaite développer une application en mode console avec Qt Creator (1.3.1) qui soit multi-plateforme Mac et Windows, il y a quelques problèmes à régler.

Comme exemple, nous allons essayer de faire fonctionner correctement le petit programme suivant :

#include <iostream>

int main() {
   std::cout << "Quel est ton nom : ";
   std::string Nom;
   std::cin >> Nom;
   std::cout << "Salut " << Nom << " !\n";
   return 0;
}

Mac OS X

ur Mac OS X, avec la configuration par défaut, la sortie standard est dirigée sur l’onglet Sortie de l'application de Qt Creator. Cela pose néanmoins un problème de taille : cet onglet ne gère pas l’entrée standard. Notre programme simple ne fonctionnera donc pas.

Pour résoudre ce problème, il faut forcer l’exécution de notre programme dans un terminal.

Pour ce faire, il faut modifier les paramètres d’exécution du projet. Afficher les détails et cocher la case Exécuter dans un terminal.

Malheureusement, cette façon de faire amène encore un petit problème à résoudre.
Sur Mac OS X, c’est un terminal XTerm qui sera utilisé, mais dans la configuration standard de Qt Creator, l’application XTerm n’est pas trouvable. Il faut en fait préciser le chemin complet de l’application.

Ouvrir les préférences de Qt Creator et aller dans la configuration Environnement : Général.

Dans la zone Terminal, indiquer le chemin complet :

/usr/x11/bin/xterm -e

Windows

Sur Windows, la configuration par défaut démarre une fenêtre de commande, dans laquelle s’affiche la sortie standard. L’entrée standard est correctement gérée.

Par contre, il subsiste deux problèmes :

  • Lorsque le programme est terminé, la fenêtre de commande disparaît immédiatement, ce qui empêche de voir la sortie finale du programme.
  • Si l’on souhaite déboguer notre programme, la fenêtre de commande n’est plus ouverte et la sortie standard s’affiche dans l’onglet Sortie de l'application de Qt Creator. L’entrée standard n’est pas gérée.

Pour résoudre ces problèmes, il faut forcer l’exécution de notre programme dans un terminal.

Pour ce faire, il faut modifier les paramètres d’exécution du projet. Afficher les détails et cocher la case Exécuter dans un terminal.

Les deux

Notre programme fonctionne maintenant correctement, aussi bien en ce qui concerne la sortie standard que l’entrée standard. Le déboguage se fait également au travers du terminal.

Reste le problème des accents concernant la phrase automatique Appuyez sur ENTRÉE pour fermer cette fenêtre.

Pour se débarrasser de ces caractères cabalistiques, la solution la plus simple est de démarrer Qt Creator en anglais.

Qt Creator en anglais

Wednesday, February 3rd, 2010

Mise à jour avril 2010 :

La technology preview de Qt Creator 2.0 montre qu’il est maintenant possible de changer la langue de l’interface depuis les préférences de l’application, en allant dans la section Environnement : Général des options.

Fin de la mise à jour.

Depuis la version 1.3.0, Qt Creator a été localisé dans plusieurs langues, en particulier le français. Dès lors, Qt Creator utilise automatiquement la langue du système d’exploitation.

Malheureusement, il n’y a aucun réglages au sein de l’application permettant de choisir une autre langue. Il peut en effet être très pratique dans certaines situations de démarrer Qt Creator 1.3.1 en anglais.

La solution diffère selon le système d’exploitation.

Mac OS X

La seule solution que j’ai trouvé avec Mac OS X pour forcer Qt Creator d’utiliser l’anglais est de l’empêcher de trouver le fichier de traductions du français. Pour ce faire, il faut sélectionner l’application Qt Creator, afficher le menu contextuel et choisir Afficher le contenu du paquet.

Lorsque le contenu est affiché, aller dans le répertoire Contents/Resources/translations/. Localiser le fichier qtcreator_fr.qm et le renommer (par exemple en _qtcreator_fr.qm).

Lors du prochain démarrage de Qt Creator, celui-ci ne trouvera pas le fichier de traductions pour le français (la langue du système d’exploitation) et se rabattra sur l’anglais.

Windows

Sous Windows, le plus simple est de définir la variable d’environnement LANG, que Qt Creator utilise en priorité (avant la langue du système d’exploitation) pour déterminer la langue de démarrage.

Pour ajouter une variable d’environnement, afficher les propriétés du Poste de travail.

Dans l’onglet Avancé, cliquer sur Variables d'environnement.

La liste des variables d’environnement apparaît. Ajouter une nouvelle variable pour l’utilisateur en cours en cliquant sur Nouveau.

Le nom de la variable d’environnement doit être LANG. Comme valeur pour cette variable, mettre en, ce qui signifie que que dorénavant, Qt Creator démarrera en anglais.

Augmenter le niveau de warning avec Qt Creator

Friday, December 11th, 2009

Voici un petit programme C++ développé avec l’IDE Qt Creator :

#include <iostream>

int main() {
   short A = 60000;
   std::cout << "A vaut " << A << "\n";
   return 0;
}

À priori, très simple mais qui ne fonctionne pas comme désiré. Le problème ? L’affectation du nombre 60000 dans un short signé.

Malheureusement, lors de la compilation de ce programme, aucun warning n’est émis !

Pour augmenter le niveau de warning, il suffit de modifier le fichier projet (.pro) et d’y ajouter la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion

Pour être informé d’un maximum de warnings, il serait même judicieux d’y ajouter le flag -Wextra, ce qui aboutirait à la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion -Wextra

En plus des problèmes de conversion, il peut également y avoir des problèmes lors du passage d’un type signé vers non-signée et vice-versa. Pour détecter ces problèmes, il faut utiliser le flag –Wsign-conversion.

D’une façon générale, il peut même être pratique de considérer les warnings comme des erreurs, afin de ne rien laisser passer. Pour ce faire, il faut ajouter le flag -Werror, ce qui abouti à la ligne suivante :

QMAKE_CXXFLAGS_WARN_ON += -Wconversion -Wextra -Wsign-conversion -Werror