Quelles sont vos meilleures pratiques avec Qt ?
Partagez vos retours d'expérience à destination des débutants

Le , par deletme, Membre confirmé
Bonjour à toutes et à tous,

Nouveau dans le monde de Qt (bien qu'ayant déjà développé des application à l'aide de ce "framework"), je souhaiterais m'améliorer dans la conception dans mes futures applications (pour qu'elles restent maintenables et évolutives).
Aussi, avez-vous des best practices que vous suivez systématiquement ? Avez-vous ou connaissez-vous des projets dont le code source est accessible permettant d'apprendre un peu plus ?
J'ai quelques livres à ma disposition mais la plupart se cantonnent à une application par notion abordée et dès que l'on sort des sentiers battus on se demande si on fait bien. J'ai également parcouru quelques exemples fournis par Qt mais j'avoue rester sur ma faim.

Merci,

dM


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de onilink_ onilink_ - Membre du Club https://www.developpez.com
le 16/10/2017 à 20:15
Je n'ai pas utilisé Qt depuis un moment, et je vais donc donner surtout mon avis sur les bonnes pratiques à appliquer en c++ en général qui ont beaucoup amélioré ma productivité.
- RAII avec les pointeurs intelligents, ne pas utiliser de pointeurs nus qui gèrent la durée de vie d'un objet
- La programmation défensive, en utilisant de nombreuses stratégies comme la programmation par contrat (disponible dans gsl: https://github.com/Microsoft/GSL )
- Éviter les globales et les singletons autant que possible, dans un petit projet on ne se rend pas compte du mal que c'est mais dans un gros projet ça cause rapidement de gros problèmes
- Toujours initialiser ses variables
- Utiliser le sanitizer de gcc (ou valgrind, mais c'est plus lourd) pour détecter de nombreuses erreurs comme les fuites de mémoire, les variables non initialisées utilisées, etc...
- Comprendre reinterpret_cast (et sa différence profonde avec static/dynamic_cast) avant de l'utiliser (mes débuts en C++ n'ont pas été glorieux a cause d'une utilisation stupide et intensive de reinterpret_cast).
- Avoir la notion "d'undefined behaviours", et être conscient qu'un programme qui compile et semble fonctionner, n'est pas forcement un programme fonctionnel.
- Vérifier le standard C++ quand on a un doute (encore une fois, ce n'est pas parce que ça "compile" et que ça semble marcher que c'est standard/légal/bon).

Côté Qt, j'ai perdu beaucoup (trop) de temps a ne pas utiliser le designer, et à instancier mes widgets manuellement en code.
Un conseil, apprendre a maîtriser Qt designer, c'est vraiment très efficace, puissant, et quand on le maîtrise il y a un réel gain de productivité.
Avatar de bcag2 bcag2 - Membre régulier https://www.developpez.com
le 17/10/2017 à 16:37
hors sujet … quoi que!

Pour ma part, bien que partant de projets en C/C++, je réalise mes refactorings, pour la partie IHM en Qt, en python avec PyQt… et débutant également avec ce framework, j'ai apprécié les exemple suivant:
https://github.com/pyqt/examples

ce qui me permet d'utiliser aussi PyQtGraph

Je réalise le binding avec mon controleur C/C++ en utilisant Swig

Résultat: pas besoin de recompiler mon IHM après chaque modif… un code python utf-8 avec mes accents qui vont bien sans prise de tête… le C/C++ là où il est le plus efficace et python/Qt là où ils sont le plus efficaces… enfin au moins pour moi!
Avatar de Pascaltech Pascaltech - Membre habitué https://www.developpez.com
le 27/10/2017 à 17:57
Bonjour,

Il y a des exemples sur www.searchcode.com faisant référence à Qt.
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -