# Chapitre 3. Construction des Tutoriels Qt

# 3.1. Étape 1 : Hello World!

Comme l'explique le chapitre précédent, nous avons créé un projet appelé `MyWidget`> - si nous regardons à la première page du tutoriel de la documentation de Qt, nous voyons que la première application utilise uniquement la fonction `main()`>. Il nous suffit donc de modifier la fonction `main()`> de notre projet généré pour franchir la première étape du tutoriel.

Pour accéder à la fonction `main()`>, sélectionnez-la dans le dossier "Globals" du visualiseur de classes qui contient un sous-dossier "Fonctions" où sont listées les fonctions qui n'appartiennent pas à une classe. Cela ouvre le fichier `main.cpp`> dans la fenêtre des "Fichiers C/C++" et le curseur d'édition est directement positionné au début de la première ligne de `main()`.

## 3.1.1. Quoi modifier en premier

Nous pourrions commencer par modifier le code donné pour obtenir ce qui est listé dans le tutoriel mais il y a encore plus simple. Sélectionnez le contenu de la fonction `main()`> avec la souris ou en maintenant la touche Shift enfoncée pendant la sélection des lignes avec la touche flèche vers le bas. Sélectionnez ensuite "Couper" dans le menu "Edition" ou appuyez sur la touche Suppr. pour supprimer le code sélectionné. Cela effacera la fonction main et nous pourrons commencer à zéro la construction de notre tutoriel.

## 3.1.2. Saisie du code source

Pour insérer le code du tutoriel, vous pourriez le lire attentivement et essayer de vous souvenir de chaque ligne de code qu'il contient. Ensuite, après avoir lu ligne par ligne la description du tutoriel, vous pourriez l'utiliser comme exemple pour écrire le tutoriel vous-même.

Pour ceux qui veulent se simplifier la vie : sélectionnez dans le navigateur le contenu de la fonction `main()`> listée et cliquez sur l'icône "Copier" dans la barre d'outils. Autrement, vous pouvez utiliser le menu contextuel ou l'entrée appropriée dans le menu "Edit". Cela copiera la sélection dans le presse-papiers et, après être revenu dans la fenêtre du code source, vous pourrez l'insérer avec "Coller" (en utilisant le menu contextuel, l'icône de la barre d'outils ou l'entrée adéquate du menu "Edition").

Enfin, ajoutez hors de la fonction `main()`> les fichiers d'en-tête suivants :

     #include <qapplication.h>
     #include <qpushbutton.h>

C'est tout ! Le code source de votre première application de tutoriel est terminé.

## 3.1.3. Construction de Hello World!

Pour construire le premier tutoriel, sélectionnez "Construire" dans le menu "Build" ou cliquez sur l'icône correspondante dans la barre d'outils. Vous pourriez aussi bien choisir "Exécuter" qui provoque l'exécution après une construction correcte.

Si la construction s'arrête à cause d'une erreur, vous pouvez être sûr que la faute vient du programmeur et non du tutoriel ! Ca serait dommage de chercher une erreur alors que vous avez décidé de programmer pour KDE et/ou Qt mais vous pouvez utiliser cette occasion pour vous entraîner à utiliser KDevelop. Pour chercher une erreur, vous avez deux possibilités : soit en sélectionnant le message d'erreur correspondant dans la fênetre des messages, ce qui vous placera sur la ligne où l'erreur s'est produite, soit en appuyant sur la touche F4. Vous pourriez aussi utiliser l'entrée "Erreur suivante" du menu "Affichage".

## 3.1.4. Exercices

Vous pourriez vous dire "Exercices ? C'était si simple que je n'ai pas besoin de m'exercer !" mais rassurez-vous, les choses vont devenir plus compliquées. Ceci était l'exemple le plus simple qui soit mais plus ce sera compliqué et plus cela demandera de réflexions de votre part pour assimiler et suivre les étapes du tutoriel.

Les exercices vous permettront aussi d'apprendre comment utiliser KDevelop et ses fonctionnalités.

Pour apprendre par vous-même plus de choses avec le premier tutoriel, vous pouvez essayer d'effectuer les modifications suivantes dans le code et voir l'influence sur le comportement de l'application :

1. changez le bouton (pushbutton) en QLabel

2. utilisez `setText()`> au lieu de définir directement le texte dans le constructeur du bouton (pushbutton)

3. utilisez `QPushButton::resize ( const QSize & s )`> au lieu de définir directement la taille par sa largeur et sa hauteur. Créez d'abord une instance de `QSize`> qui contiendra la taille

4. jouez avec les tailles pour voir laquelle est la largeur et laquelle est la hauteur