Forum QtFR

La communauté francophone Qt

Vous n'êtes pas identifié(e).

Annonce

Qt 4: 4.8.6 - Qt 5: 5.3.1 - Qt Creator: 3.1.2 - Qt Installer: 1.5.0 - VS Qt 4: 1.1.11 - VS Qt 5: 1.2.3 - Monkey Studio: 1.9.0.4

#1 01-01-2012 20:42:53

Maestro31
Membres Qt
Inscription : 27-12-2011
Messages : 10

[résolu] Fonctionnement de l'architecture MVC avec Qt ?

Bonjour à tous et bonne année 2012!

J'ai un sujet assez vaste que j'aimerai aborder avec vous. Celui de l'architecture MVC ou plutôt MV avec Qt qui est assez difficile à appréhender pour un novice comme moi. Je suis actuellement en train de coder un carnet d'adresse qui est destiné à m'en apprendre toujours plus sur Qt. Il évolue donc d'autant. Voilà comment se dessine l'interface principale:

interface.png

La boite de dialogue pour ajouter un nouveau contact dans le groupe courant:

addContactDlg.png

Comme vous pourrez le constater je me suis amusé avec les styles CSS big_smile
Le fonctionnement est assez simple, la liste à gauche qui est un QListWidget me permet d'afficher les groupes de contacts créés par l'utilisateur et une connexion me permet de rafraîchir la liste de contact à droite (un QTreeView) en fonction du groupe sélectionné. Pour sauvegarder les changements, j'ai un QMap<QString, QStringList> qui est sérialisé dans un fichier et ouvert à la prochaine ouverture du programme. Les clés correspondent aux noms de groupes et les valeurs aux contacts sous forme de chaine de caractères que je split afin de remplir les items du QTreeView. Tout fonctionne relativement bien. Le problème c'est que j'ai l'impression de faire du bricolage pour arriver à obtenir ce que je souhaite.

Un exemple simple, je tente de permettre la modification directement de l'item par l'utilisateur dans le QTreeView. Le changement n'est pris en compte que si la saisie est validée par la touche entrée. C'est déjà bien me direz-vous, mais j'ai du ruser pour arriver à ce résultat qui ne me contente qu'à moitié.

Plus je regarde les exemples dans la doc de Qt et plus je me dis qu'il me serait indispensable de créer mes propres classes de model et d'items. Actuellement j'utilise un QStandardItemModel avec des QStandardItem pour le QTreeView. Le problème c'est que je ne connais pas suffisamment bien le fonctionnement de l'architecture MVC de Qt pour savoir de quelles classes je devrais hériter et comment le faire de façon à rendre plus lisible et plus évolutif mon code. Je pourrais bien sur laisser mon code tel quel et continuer de le faire évoluer en bricolant mais je ne crois pas que prendre cette habitude soit une bonne idée.

Voilà les sources et le programme compilé afin que vous puissiez voir ce que j'ai tenté de faire.

http://www.maestro-3d.fr/files/SourcesAdressBook.rar
http://www.maestro-3d.fr/files/AdressBook.rar

Je vous remercie d'avance pour vos réponses, qu'elles soient complètes ou partielles. wink

Dernière modification par Maestro31 (07-01-2012 02:29:35)

Hors ligne

#2 01-01-2012 22:04:21

dergen
Responsable Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 624
Site Web

Re : [résolu] Fonctionnement de l'architecture MVC avec Qt ?

Les fonctionnement "par défaut" répondent rarement à nos besoins d'où l'usage des *itemModel un peu partout et en les utilisant, ce n'est pas du bricolage  wink


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#3 06-01-2012 22:17:55

Maestro31
Membres Qt
Inscription : 27-12-2011
Messages : 10

Re : [résolu] Fonctionnement de l'architecture MVC avec Qt ?

Je te remercie pour ta réponse. Le bricolage c'est une impression que j'ai, je pensais pas arriver à réaliser le carnet d'adresse au stade où il en est actuellement. Il n'était qu'un exercice d'entrainement au début mais de plus en plus il devient un véritable projet. Je viens par exemple de réussir à permettre la synchronisation des contacts avec Thunderbird. Mais plus mon projet avance et plus je me dis que j'ai intérêt à faire les choses le plus correctement possible si je veux pouvoir le maintenir facilement et c'est là en fait que je commençais à douter de ma façon de programmer. En tout cas merci d'avoir infirmé mon ressenti, il faut que j'apprenne à me faire plus confiance wink

Hors ligne

#4 06-01-2012 23:54:28

dergen
Responsable Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 624
Site Web

Re : [résolu] Fonctionnement de l'architecture MVC avec Qt ?

wink


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

Pied de page des forums


Sitemap QtFR