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

Qt Discussion :

Boite de paramètre d'une application


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut Boite de paramètre d'une application
    Bonjour à tous,

    Cette fois, je me pose la question sur la gestion d'une boite de paramètre d'une application.

    Actuellement, lorsque je dis boite de paramètre, c'est un QDialog que j'appelle par l'intermédiaire d'un menu, et qui permet de changer quelques variables, qui sont généralement global aux programmes.

    Je crois qu'il y a un QSettings, il faudrait que je me penche la dessus, mais si vous pouviez m'en dire quelques mots, et si cela convient bien à mon besoin, j'en serai enchanté. ( Sinon je peux lire la documentation vous allez me dire )

    Revenons un peu mon problème ( que je n'ai toujours pas présenté ). Actuellement ma question est, comment faire pour envoyer les nouvelles valeurs des paramètres aux éléments de l'application qui en ont besoin.

    Je ne suis pas sans solution:

    - Des variables globales ( c'est toujours déconseillé )
    - Un singleton qui permet de contenir les données ( c'est très très moyen ( dans le sens, mauvais ) )
    - Des getteurs ( accesseurs ) sur la classe qui gère la boite de dialogue pour les préférences ( ça commence à être bien, mais la boite de dialogue à une durée de vie limitée, donc cela est finalement peut être dur à géré )
    - Des signaux ( Je trouve ça une bonne idée )
    - Obiwan Kenobi et Chuck Norris suffiront

    Pour l'instant j'aime bien l'idée des signaux ( je peux changer du jour au lendemain ).
    Mais comme la boite de dialogue est crée dans un slot de la fenêtre principale.
    Le code donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void monSlot(void)
    {
      MyDialog dialog();
      dialog.exec();
      // Destruction immédiate
    }
    Avec des signaux cela sera du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void monSlot(void)
    {
      MyDialog dialog();
     
      connect(dialog, SIGNAL(newSetting()), element_that_need_it, SLOT(changedValue)));
     
      dialog.exec();
     
      disconnect(dialog); // C'est très schématique
      // Destruction immédiate
    }
    Donc, on voit que je m'intéresse à la déconnexion des signaux, vu que ma boite va mourir juste après ( et aussi, parce que si l'utilisateur rappel la boite, on va refaire les mêmes signaux, et un jour je vais avoir des problèmes ).

    Qu'est ce que vous en pensez?
    La solution des signaux est elle la meilleure? Est ce que mon implémentation est correcte, ou j'oublie un point important?

    Merci pour votre aide.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Qu'est ce que vous en pensez?
    Que si tu utilise Chuck Norris c'est pas toi qui va choisir les paramètres...

    En un lien
    http://qt.developpez.com/doc/latest/qdialog.html#exec

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bien sur, dans mon code, à la place de show() c'est des exec() de ma boite de dialogue. Là dessus pas de problèmes. ( Enfin je crois pas ).

    Ma boite tourne bien, je peux jouer avec, mes je voudrais savoir comment je répercute les valeurs que j'aurai défini dans ma boite, dans le reste du programme.

    Chuck Norris il n'a pas besoin de boite de dialogue, il peut remodeler le monde juste avec ses mains
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Quand tu ferme ta dialog, le programme sort du exe et continue.
    Il te suffit de récupérer les valeurs juste après le exec().

    ps: pas besoin de faire disconnect, c'est automatique avec les destruction du QObject

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Citation Envoyé par yan Voir le message
    Quand tu ferme ta dialog, le programme sort du exe et continue.
    Il te suffit de récupérer les valeurs juste après le exec().

    ps: pas besoin de faire disconnect, c'est automatique avec les destruction du QObject
    Donc ce que vous me conseillez, c'est d'utiliser des accesseurs sur ma classe de boite de dialogue afin de récupéré les valeurs des paramètres?

    Question: Est ce que si on peut évité d'utiliser les signaux dans Qt, faut t'il le faire? ( Par exemple, ici, j'ai le choix entre signaux et accesseurs, le plus optimisé va certainement être, les accesseurs.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Question: Est ce que si on peut évité d'utiliser les signaux dans Qt, faut t'il le faire? ( Par exemple, ici, j'ai le choix entre signaux et accesseurs, le plus optimisé va certainement être, les accesseurs.
    Ca dépend ce que tu veux faire.

    Si ton affichage doit changer en "temps réelle" alors tu as besoin de signaux.
    Sinon, ben ca depend de ton besoin.

    Perso, entre faire 20 signaux ou un simple accésseur sur une struct (ou que des membre public) contenant toutes les valeurs entrées, mon choix est simple

    Niveau optimization, tu ne verra pas de différence avec l'une ou l'autre.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/09/2009, 23h51
  2. [MFC]Bouton "?" pour une application boite dialogu
    Par fleur_de_rose dans le forum MFC
    Réponses: 2
    Dernier message: 23/03/2006, 08h44
  3. Réponses: 2
    Dernier message: 02/02/2006, 18h46
  4. Réponses: 3
    Dernier message: 09/01/2006, 16h35
  5. [C#] - Récupérer les paramètres passés à une application
    Par linuxludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/11/2005, 14h41

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