IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

Taille de code avec wxWidgets


Sujet :

wxWidgets

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut Taille de code avec wxWidgets
    Bonjour,

    Je programme une application avec wxWidgets, j'ai donc classiquement une wxMyFrame qui derive de wxFrame et qui contient tous les contrôle (menubar, toolbar, wxAui, wxTreeCtrl, ...). Tous ces controles doivent pouvoir modifier une structure de donnés qui appartient à wxMyFrame et doivent également pouvoir interagir entre eux ( ex : on fait un "ajoute page" à partir du menu et ça modifie l'arborescence de projet). J'ai donc commencé à faire ma table d'évènement dans wxMyFrame, laquelle gère tous les evenements de tous les controles (ainsi une fonction d'evenement sur n'importe quel controle a acces à toutes les donnes ou controles de wxMyFrame). Mon souci est que ma classe wxMyFrame commence à etre enorme et brouillonne, c'est pourquoi je vous demande si vous n'auriez pas une meilleure méthode pour arriver à mes fin en gardant un code clair.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    La solution que j'ai pour le moment : Etant donné que les actions sur le menu peuvent agir sur les fenêtres de ma frame et non l'inverse je pensais à faire un héritage :

    wxFrameMenu derive de wxFrame et ajoute la structure de données, la menubar et toolbar ainsi que les evenements correspondants.

    wxFrameAui derive de wxFrameMenu et ajoute les fenetres (wxTreeCtrl, wxGLCanvas, etc...) le tout géré avec wxAui. Les evenement sur chaque controle son implémentés ici.

    wxMyFrame derivant de wxFrameAui et permettant de créer simplement ma frame.



    Ceci diviserais le code en 2 (au niveau de la gestion des événements) et ce serais selon moi plus propre.

    Cette solution vous semble t'elle bonne?
    Si oui est il possible d'aller plus loin?

    merci d'avance

  3. #3
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Cette solution vous semble t'elle bonne?
    En tout cas, c'est comme ça que j'aurai fait.
    Si oui est il possible d'aller plus loin?
    Pour aller plus loin, il faudrait voir si on ne peut pas factoriser un peu plus mais il faudrait voir le code parce que là c'est pas évident

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    Pour ce qui est du code, tout ce qu'il y a de plus classique pour l'ajout des menubar et toolbar.
    Pour le reste j'ai un wxAuiManager dans ma wxMyFrame auquel j'ajoute un wxTreeCtrl, un wxGLCanvas et un wxNotebook. Je configure chacun des mes controles à ma guise et je les ajoute avec AddPane().

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Et bien je ne vois pas grand chose en fait. Le fait que tu ais beaucoup de code n'est pas très grave, c'est même plutôt normal.

    Si tu as eu l'occasion de voir ce que des outils visuels de création d'interface (visual studio, c++builder, ...) , tu pourras remarquer que pour une simple application la quantité de code générée est enorme.

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Generalement, il est tres conseille de diviser. Diviser pour mieux reigner. C'est donc dans la meme direction que celle que tu empruntes.
    Tu pourrais en fait isoler toutes les sections qui sont separables en des classes distinctes. Pourquoi? Tout d'abord ton code sera plus clair, et tu pourras plus facilement localiser des bugs, etc ... Ensuite, si un jour tu desires modifier une section, cela te sera facile car elle sera deja isolee. Tu n'auras ainsi que peu de code a modifier. Alors que cela avait ete en vrac dans ta classe de frame...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    Merci pour vos réponses,

    Effectivement le developpement de mon application va se placer sur le long terme donc je préfère prendre mes dispositions pour ecrire un code clair. Je m'oriente donc vers une personnalisation de tous les composants wx que j'utilise (via l'héritage) et une séparation claire du code.
    De plus je prépare le terrain pour un futur travail en équipe et ayant rencontré pas mal d'exemples de code où tout est en vrac dans la frame je vois bien que ce n'est pas viable.

    re-merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dessiner avec wxWidgets
    Par SuperPat dans le forum wxWidgets
    Réponses: 5
    Dernier message: 24/02/2009, 00h06
  2. Comment linker avec odbc32.lib dans le code ? (avec gcc)
    Par _Audrey_ dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/11/2008, 17h40
  3. [debutant]probleme avec wxwidgets
    Par iwky dans le forum wxWidgets
    Réponses: 11
    Dernier message: 23/01/2005, 20h23
  4. [UML] génération de code avec omondo.uml
    Par RENAULT dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/10/2003, 13h14
  5. Taille des surfaces avec DirectDraw
    Par Shakram dans le forum DirectX
    Réponses: 5
    Dernier message: 09/09/2002, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo