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

Interfaces Graphiques Discussion :

Probleme relation entre 2 interfaces


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 77
    Points : 63
    Points
    63
    Par défaut Probleme relation entre 2 interfaces
    Bonjour à tous,

    J'ai une question qui parait toute bête mais dont je ne trouve pas la solution, sous GUI à partir du menu editor d'une interface principale je fais appel à une interface secondaire.
    Mon problème apparait lorsque l'utilisateur relance cette seconde interface alors qu'elle est déjà ouverte,
    Si je me contente de la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     function Untitled_13_Callback(hObject, eventdata, handles)
    MonInterfaceSecondaire
    celle-ci initialise ses variables à partir du code OpeningFcn mais ne réinitialise pas l'interface graphique qui reste donc avec les variables préalablement entrées.

    Une solution qui fonctionne mais qui provoque une "sacade" lors de l'ouverture est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     function Untitled_13_Callback(hObject, eventdata, handles)
    close(MonInterfaceSecondaire)
    MonInterfaceSecondaire
    Y aurait il une solution plus simple pour rouvrir cette seconde interface en la réinitialisant complètement ?

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Stagiaire assistant ingénieur R&D
    Inscrit en
    Mai 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire assistant ingénieur R&D

    Informations forums :
    Inscription : Mai 2014
    Messages : 54
    Points : 74
    Points
    74
    Par défaut
    celle-ci initialise ses variables à partir du code OpeningFcn mais ne réinitialise pas l'interface graphique qui reste donc avec les variables préalablement entrées.
    que veux tu dire par là je ne comprend pas très bien. Tes variables sont réinitialisé mais pas ton interface ?
    Tu veux dire que tes edit text, ou tes radiobutton ne s'initialise pas ?

    Si c'est le cas dans le menu OpeningFcn tu peux ajouter des lignes de code qui permettent d'initialiser cela, un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(handles.edit1,'String','Edit text initialisé') % Pour initialiser un edit text
    set(handles.radiobutton1,'value',false) % Pour initialiser un radiobutton

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 77
    Points : 63
    Points
    63
    Par défaut
    Bonjour et merci pour ta réponse, effectivement je peux programmer la Raz des composants graphiques de mon interface ca sera peut-être la solution que j'adopterai au final.
    Mais je trouve un peu frustrant d'être obligé de remplacer 2 lignes de code (close et réouverture) par une 30aine de ligne juste parceque la réinitialisation de mon interface sacade .

    En fait j'ai l'impression que quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Untitled_13_Callback(hObject, eventdata, handles)
    close(MonInterfaceSecondaire)
    MonInterfaceSecondaire
    il réouvre l'interface, la referme et la réouvre de nouveau ce qui est assez vomitif alors que tout ce dont j'ai besoin c'est qu'il l'ouvre une seule fois réinitialisée

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Suivant le résultat voulu, on peut adopter plusieurs stratégies :
    • On souhaite interdire l'ouverture d'une nouvelle fenêtre alors qu'une est déjà ouverte
      • on peut interdire de revenir sur la première interface et rester bloqué sur la seconde tant quelle n'a pas été validée/fermée, et donc d'interdire la possibilité de ré-ouvrir la seconde en rendant la seconde modale : propriété 'WindowStyle' à 'modal',
      • on peut détecter l'éventuelle fenêtre déjà présente et ne simplement pas en ouvrir de nouvelle et laisser l'actuelle en l'état. On peut faire cela en donnant un 'Tag' particulier à la seconde interface et utilisant la fonction findall ;

    • autoriser l'ouverture d'une nouvelle
      • que fait-on de l'ancienne ?
        • on la ferme avant de ré-ouvrir la nouvelle (Tag + findall+delete),
        • on la laisse... la ligne gui_Singleton au début du .m sera alors à mettre à 0.
    Dernière modification par Invité ; 24/07/2014 à 02h56.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 77
    Points : 63
    Points
    63
    Par défaut
    Bonsoir Winjerome et merci pour ta réponse,

    Citation Envoyé par Winjerome Voir le message
    [*]on peut détecter l'éventuelle fenêtre déjà présente et ne simplement pas en ouvrir de nouvelle et laisser l'actuelle en l'état. On peut faire cela en donnant un 'Tag' particulier à la seconde interface et utilisant la fonction findall ;
    Cette option me plait bien mais j'ai un peu de mal avec la fonction findall

    Mettons que j'attribue le tag SecInt à ma seconde interface
    et que j'essaie le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List = findall(gcf);
    TestPresence = findall(List,'tag','SecInt');
    Que ma seconde interface soit ouverte ou non la variable TestPresence reste désespérément vide, je suppose que c'est ma variable List qui n'est pas correcte mais je vois pas quelle commande utiliser :/

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ta seconde fenêtre n'est pas un enfant de la première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TestPresence = findall(0,'Tag','SecInt');
    0 étant ici l'objet Root.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 77
    Points : 63
    Points
    63
    Par défaut
    Effectivement !

    Merci encore une fois pour ton aide .

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

Discussions similaires

  1. [Débutant] relations entre les interfaces dans c++ Builder 6
    Par Imene MI dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/05/2015, 11h38
  2. [2.x] Probleme relation entre entités
    Par pixel016 dans le forum Symfony
    Réponses: 33
    Dernier message: 25/11/2014, 11h54
  3. [MySQL] mysql et les relations entre tables
    Par aquafafa dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/12/2007, 11h20
  4. Probleme de relation entre deux tables
    Par Mimisio dans le forum Modélisation
    Réponses: 5
    Dernier message: 17/07/2007, 14h30
  5. [EJB2.1 Entity] Probleme - Relation entre EJB - Composition d'EJB ??
    Par skrosoft dans le forum Java EE
    Réponses: 7
    Dernier message: 09/02/2007, 17h11

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