Exemple de Projet Qt sous Linux

Affichage des fichiers d'une arborescence

 

Utilisation des techniques « Signal / Slot »

Après téléchargement de l'archive dans le home de l'utilisateur, il faut extraire le dossier du projet :

ou bien

Un dossier TreeView_v1 est crée. Il contient les principaux fichiers du projet.

Création du fichier tv1.pro

Puis création du fichier Makefile à l'aide de la commande qmake

La bibliothèque Qt5Widgets a été ajoutée grâce à l'option QT += widgets .

Sans cette option, il aurait fallu modifier le fichier Makefile.

Exemple de script widgets-sed.sh ajoutant l'option -lQt5Widgets pour l'édition de liens du Makefile :

Exemple de mise à jour des permissions du script, puis d'éxecution du script

Génération de l'exécutable du projet, puis éxecution de celui-ci

Capture d'écran obtenu avec la touche ALT maintenue appuyée, puis (fn) ImpEcran

En savoir plus sur la capture d'écran avec UBUNTU

En savoir plus sur la capture multimédia avec UBUNTU

Fonctionnement des programmes

TreeWidget_v1.h

  • La directive #ifndef permet de ne prendre en compte qu'une seule fois le fichier include
  • La macro Q_OBJECT est utilisée par la commande moc (Meta Object Compiler) pour générer le code de gestion des évènements ( signaux et slots)
  • Les noms des arguments des fonctions commencent par les 2 caractères p_
  • L'argument p_Column n'est pas utilisé

 

TreeWidget_v1.cpp

  • Les instructions des méthodes de la classe myTreeWidget du fichier .h ont été mises dans le fichier .ccp
  • Chaque méthode commence par un commentaire /// <<<< nom-de-la-methode
  • Chaque méthode finit par un commentaire // >>>> nom-de-la-methode
  • Des caractères espace ont été insérés afin de rendre plus lisible le texte. En particulier, après les virgules et les parenthèses ouvrantes, après les parenthèses fermants, de paer et d'autre des opératuers (=, +, etc ).
  • Mettre toujours des accolades { } pour définir le bloc d'instructions suivent une structure de contrôle de type : if, while, for, foreach, etc. Même si ce blox est réduit à une seule instruction.
  • La fonction connect sera expliqué ultérieurement.

 

TreeAppli_v1.cpp

  • Cette 1ère version supporte mal le redimensionnnement
  • L'icône est absente car le fichier folder.jpg est manquant
  • La méthode addChildren aurait pu être créée comme méthode d'une classe
  • Les dossiers . et .. ne devrainet apparaitre
  • Les liens de fichiers et de dossiers ne sont pas traités
  • Les dates de création / modifications sont absentes
  • etc...