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 :

Utiliser ma fonction dans un gui


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut Utiliser ma fonction dans un gui
    Bonjour a tous,


    J'ai écris un programme qui détecte et donne la surface d´une molécule á partir d´une photo 768*576 (test2.m). Ca marche super bien, pas de probléme.
    Voici comment je l´ai écrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [cell_area,recovered_cell,BWfinal] = test2 (file,filtre,coefsupr,coefdet,coefliss,x,y,w,h)
    Comme vous pouvez le voir, il y a beaucoup de variables d´entré, c´est pourquoi j´ai fais une petite interface graphique qui simplifie l´initialisation de chaque variable.
    Mais biensur, ca marche pô

    Mom probleme est le suivant:

    je ne sais pas comment écrire (ou appeler) ma fonction test2 dans mon GUI
    Pour le moment je l´ai écris comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [cell_area,recovered_cell,BWfinal]=test2(get(handles.file,'String'),...
                                                    get(handles.filtre,'String'),...
                                                    str2num(get(handles.coefsupr,'String')),...
                                                    str2num(get(handles.coefdet,'String')),...
                                                    str2num(get(handles.coefliss,'String')),...
                                                    str2num(get(handles.x,'String')),...
                                                    str2num(get(handles.y,'String')),...
                                                    str2num(get(handles.w,'String')),...
                                                    str2num(get(handles.h,'String')))
    Je suis débutant et la quinzaine de messages d´erreur que je vois apparaitre ne m´aident pas du tout.
    Ma question est la suivante, auriez vous des exemples d´appel de fonction, ou pouvez vous me dire comment l´écrire?
    J´ai aussi cherché des tuto ou des post qui pouvaient m´aider, mais j´ai pas vraiment trouvé.

    Merci d´avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Il n'y a plus de raison de passer les variables en arguments d'entrée de la fonction.

    Donc test2.m peut devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function [cell_area,recovered_cell,BWfinal] = test2
     
    file = get(handles.file,'String');
    filtre = get(handles.filtre,'String');
    coefsupr = str2num(get(handles.coefsupr,'String'));
    ...
    Ou bien gérer les variables avant l'appel à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    file = get(handles.file,'String');
    filtre = get(handles.filtre,'String');
    coefsupr = str2num(get(handles.coefsupr,'String'));
    ...
     
    [cell_area,recovered_cell,BWfinal] = test2(file,filtre,...)


    Reste à savoir comment tu comptes gérer le passage de la structure handles entre les différentes fonctions...

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut
    ok, merci

    Afin d´initialiser les variables d´entrées avec mon GUI j´ai placé plusieurs petits truc oú on peut écrire .
    Ces petits trucs ont pour tag "coefsupr","coefdet","x",........ l´utilisateur va y entrer la valeur (en chiffre) de chaque variables d´entrées

    Qu´es ce que je dois écrire pour que ces texts soient reconnus comme les variables d´entrées de ma fonction "test2" ?
    Je suis désolé si mes questions sont un peu stupide, mais j´ai découvert matlab il y a une semaine, et je galére comme un dingue

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Je suppose que tu n'as qu'une seule fenêtre sur ton interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    handles = guihandles(gcf);
     
    file = get(handles.file,'String');
    filtre = get(handles.filtre,'String');
    coefsupr = str2num(get(handles.coefsupr,'String'));
    ...
     
    [cell_area,recovered_cell,BWfinal] = test2(file,filtre,...)
    Sinon => http://www.developpez.net/forums/d40...es-graphiques/

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Par défaut
    Oui je n´ai rien qu´une fenêtre graphique.
    j´ai essayé ce que tu m´a dit mais ca me met toujours ce message d´erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Error in ==> jol>start_Callback at 154
    [cell_area,recovered_cell,BWfinal] =
    test2(file,filtre,coefsupr,coefdet,coefliss,x,y,w,h)


    Voila ce que j´ai écris ("start", c´est le tag de mon bouton,"arrive" et "milieu" c´est le tag de deux carrés blanc avec une croix dedans oú je veux que mes images s´affichent).

    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
    25
    26
    27
    28
    29
    30
    % --- Executes on button press in start.
    function start_Callback(hObject, eventdata, handles)
    % hObject    handle to start (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    handles = guihandles(gcf);
    file = get(handles.file,'String');
    filtre = get(handles.filtre,'String');
    coefsupr = str2num(get(handles.coefsupr,'String'));
    coefdet = str2num(get(handles.coefdet,'String'));
    coefliss = str2num(get(handles.coefliss,'String'));
    x = str2num(get(handles.x,'String'));
    y = str2num(get(handles.y,'String'));
    w = str2num(get(handles.w,'String'));
    h = str2num(get(handles.h,'String'));
    [cell_area,recovered_cell,BWfinal] = test2(file,filtre,coefsupr,coefdet,coefliss,x,y,w,h)
    set(handles.arrive,'HandleVisibility','ON');
    axes(handles.arrive);
    image(recovered_cell);
    axis equal;
    axis tight;
    axis off;
    set(handles.milieu,'HandleVisibility','ON');
    axes(handles.milieu);
    image(BWfinal);
    axis equal;
    axis tight;
    axis off;
    set(handles.milieu,'HandleVisibility','OFF');
    set(handles.arrive,'HandleVisibility','OFF');
    ya un truc qui va pas, mais ou ?

    merci...

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Il nous faut le message d'erreur complet...

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

Discussions similaires

  1. Utiliser une fonction dans un module
    Par formidable78 dans le forum VBA Access
    Réponses: 11
    Dernier message: 30/01/2008, 13h49
  2. Réponses: 2
    Dernier message: 08/06/2007, 10h27
  3. DAO impossible d'utiliser une fonction dans un requete
    Par exter666 dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2005, 18h15
  4. Problème d'utilisation de fonction dans une popup
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/09/2005, 16h00
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 16h04

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