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 :

ouverture d'une seconde figure.


Sujet :

Interfaces Graphiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Australie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut ouverture d'une seconde figure.
    Bonjour,

    Je suis tout debutant en GUI et j'utilise donc naturellement le GUIDE de Matlab. Mon problème est très simple et bien qu'il ait déja été traité, les solutions proposées ne marche pas lorsque je les applique. (ou plus probablement je ne les applique pas correctement). Après deux jours a gamberger sur tous les forums matlab possibles, je me permet donc de poster, pour qu'on puisse m'expliquer ce que je n'ai pas saisi.

    Je souhaite ouvrir une seconde fenetre via un pushbutton dans une première fenètre (oui c'est trivial).

    J'ai créé mon fichier principal .fig et le second fichier .fig séparément. Les deux sont situés dans mon Matlab active folder. Ensuite la solution la plus simple proposée sur le forum est de simplement entrer le nom du fichier .m de la seconde fenetre dans le callback du pushbutton. Evidemment quand je teste mon GUI et clique sur le pushbutton, la seconde fenètre ne s'ouvre pas et j'obtiens l'erreur suivante:

    Undefined function 'test' for input arguments of type 'struct'
    Error in @(hObject,eventdata) test('pushbutton3_Callback',hObject,eventdata,guidata(hObject))
    Error while evaluating uicontrol Callback

    Qu'est-ce que cette fonction 'test' et ce type struct?? (je n'ai jamais créé aucune fonction test ni declaré de structure). J'ai compris qu'une grande partie du code est caché lorsqu'on utilise le GUIDE et que l'erreur provient surement de là. mais à part ca...

    Excusez le néophyte que je suis et merci de m'aider! (grand désespoir).

  2. #2
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Je n'utilise pas guide personnellement. Donc tout ce que je peux te conseiller, c'est d'essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function main
        fig(1) = figure;
        nombre_fenetre_ouverte = 1;
        panel_boutons = uipanel('parent', fig(1), 'units', 'normalized', 'position', [0.1 0.1 0.3 0.8], 'title', 'Ma zone contenant mes boutons');
        bouton_ouverture_fenetre = uicontrol('parent', panel_boutons, 'style', 'pushbutton', 'string', 'Ouvrir une nouvelle fenetre', 'units', 'normalized', 'position', [0.0 0.1 0.2 0.5], 'callback', @ouvrir_nouvelle_fenetre);
     
        function ouvrir_nouvelle_fenetre(varargin)
            nombre_fenetre_ouverte = nombre_fenetre_ouverte + 1;
            fig(nombre_fenetre_ouverte) = figure;
        end
    end
    Cordialement,

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Vu la ligne d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error in @(hObject,eventdata) test('pushbutton3_Callback',hObject,eventdata,guidata(hObject))
    test est censé être le nom de la fonction principale de l'interface qui contient le bouton.
    Le fichier a donc dû être renommé depuis.
    Essai de re-cliquer sur le bouton dans le Property Inspector du bouton en face de la propriété Callback, le nom devrait se mettre à jour automatiquement.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Australie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci pour ces réponses. Winjerome ta remarque m'a mis sur la piste, les modifications apportées au callback du pushbutton n'étaient pas prises en compte. J'ai juste supprimmé le bouton et je l'ai recréé éxactement de la meme maniere. Et la, ca a marché! Je ne pensais pas que l'erreur pouvait venir d'autre chose que ce que j'avais écrit...

    Et Tachmou je m'essaierais prochainement à faire du GUI sans le GUIDE. Ca doit surement éviter le genre de boulette que je viens de rencontrer.

  5. #5
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Bah en fait, si tu maîtrises le guide, il n'y a pas de raison que ça soit moins robuste que si tu écris le code à la main... C'est juste qu'en codant à la main, je trouve qu'on peut plus facilement maîtriser et comprendre ce qu'on fait. C'est une question de besoin et de goût :-)

    Et coder à la main n'évite pas de faire des erreurs, au contraire : par contre on se rappelle plus facilement des codes qu'on a fait je trouve, donc c'est plus facile de se corriger.

    Cordialement,

Discussions similaires

  1. ouverture d'une figure lors d'un click datacursor
    Par sdecorme dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 11/10/2013, 20h39
  2. Ouverture d'une seconde fenêtre avec passage de variable
    Par kawther dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 06/11/2012, 08h50
  3. Ouverture d'une figure lors de l'appel à guihandles
    Par kap dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 21/10/2009, 07h38
  4. Réponses: 3
    Dernier message: 25/06/2007, 17h03
  5. ouverture d'une form en fondu transparent
    Par nicholz dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/01/2003, 11h06

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