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

MATLAB Discussion :

Appel d'une fonction à partir d'une interface GUI


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut Appel d'une fonction à partir d'une interface GUI
    Bonjour à tous!!

    J’aimerai savoir, comment gérer plusieurs fonctions dans un même fichier par rapport à plusieurs appels de bouton dans un interface. Par exemple ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    %Dans mon fichier principal lié à l’interface
     
    %Quand j’appuie sur connecte ;
     
    % le programme appel la function 
    connect() 
     
    %et ensuite quand j’appuie sur deconnecte, 
    %le programme appel la function :
    deconnect
    Votre aide me serait vraiment utile !! merci.

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

    Le tutoriel Développement efficace des interfaces graphiques est là pour ça

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut
    J’ai bien vu ce site plusieurs fois ; mais je ne trouve pas mes solutions.

    1. Il s’agit ici concernant la fonction principale d’un programme fait à la main mais non avec guide, le mien c avec guide. Mais j’imagine que rien ne change.
    2. Les sous fonctions ici a comme paramètre ( obj, event) qui m’affiche à tout moment undefined obj et event


    Je m’explique par rapport à ce que je veux et ce que j’ai pu prendre en compte sur le site mais qui ne marche pas du tout.

    Mon CODE

    Mes sous fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    %configuration
    function  [Y1, Y2, Y3] = Configuration ()
     
     
    global Y1
    global Y2
    global Y3
     
    [ corps du programme]
     
    end
     
     
    %connection
     
    function object = connection(Y1, Y2, Y3)
     
    global Y1
    global Y2
    global Y3
    global object
    [ corps du programme]
     
    End
    Mon programme principale fait par guide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    % --- Executes on button press in configuration.
    function config_Callback(hObject, eventdata, handles)
    % hObject    handle to config (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    global Y1
    global Y2
    global Y3
    [Y1, Y2, Y3] = Configuration ()
     
     
    % --- Executes on button press in connecte.
    function connecte_Callback(hObject, eventdata, handles)
    % hObject    handle to connecte (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    global Y1
    global Y2
    global Y3
    global object
    object = connection (Y1, Y2, Y3)
    À partir de ce petit exemple, l’appel à la fonction ne marche pas car elle ne trouve pas les variables Y1, Y2, Y3 ; qui d’après moi est invisible.

    J’aimerai vraiment que quelqu'un m’apporte une réponse à mon problème svp.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans ton premier code, les déclarations global n'ont pas leur place, elles sont à supprimer étant donné que tu passes les variables en paramètre.

    Concernant obj et event, ne serait-ce pas plutôt unused ?
    Pourrait-on avoir des messages d'erreurs complets et explicites ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut
    J’ai refait le programme en utilisant ‘(obj, event) comme paramètres et de laisser les variables globales à leur place.

    Quand, j’appuie sur configuration, il n’y a aucun problème, ça me montre les variables dans command windows mais non dans workspace.
    Ensuite, quand j’appuie sur connection,, il y a erreur car d’après moi, elle ne voit pas les variables.
    Je constate cela car quand je relance la connection et avant, je tape d’abord dans commande
    la connexion marche très bien. Bien sûr j’ai sauvegardé les variables en sorties du configuration.

    Comme erreur, j’ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ??? Error using ==> icdevice.icdevice at 281
    An error occurred while executing the driver create code.
    Undefined function or variable 'ps2000Enuminfo'.
    If the error is not an instrument error, use MIDEDIT to inspect the driver.
     
    Error in ==> ouvrir_port at 19
    ps2000DeviceObj = icdevice('picotech_ps2000_generic.mdd')  % Objet
     
    Error in ==> reference_base>connecte_Callback at 135
    ouvrir_port;
     
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
     
    Error in ==> reference_base at 43
        gui_mainfcn(gui_State, varargin{:});
     
    Error in ==> @(hObject,eventdata)reference_base('connecte_Callback',hObject,eventdata,guidata(hObject))
     
    ??? Error while evaluating uicontrol Callback
    Les Y et object dans mon code d'avant sont juste des exemples.

    J’avoue que tout cela me parait bizarre !!

  6. #6
    Invité
    Invité(e)
    Par défaut
    L'erreur se situe au niveau du constructeur de la classe icdevice, apparemment ps2000Enuminfo n'a pas été défini.

Discussions similaires

  1. Appeler une fonction à partir d'une autre fonction
    Par touta1 dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2009, 18h15
  2. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  3. Réponses: 4
    Dernier message: 30/11/2007, 14h46
  4. Appel à une fonction à partir d'une chaine de caractères
    Par becks dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/09/2007, 12h14
  5. [javascript] appel d'une fonction à partir d'une popup
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/08/2005, 15h14

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