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 :

[uitable] Sauvegarde valeur sélectionnée vers une zone edit


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut [uitable] Sauvegarde valeur sélectionnée vers une zone edit
    Bonjour,

    Je suis actuellement en train de créer une interface GUI et je ne trouve, ni dans le tutos, ni dans les différents sujet, comment je pourrais créer un tableau de valeur. Mais aussi que la valeur choisie par l'utilisateur soit sauvegardée et apparaisse dans une case.

    Par exemple, l'utilisateur choisi la case B-3 et le chiffre "47" apparaît dans une case sous le tableau.


     	 A	   B	 C	 D
    1	15	  11	12	32
    2	58	  10	53	56
    3	25	  47	69	41
    4	68	  23	85	22
    5	41	  5	13	14
    Je vous remercie d'avance.
    Nils

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

    Tu devrais trouver ton bonheur avec doc uitable et son CellSelectionCallback.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut
    Merci, je vais essayer si ça fonctionne

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut
    Bonsoir,

    J'ai bien réussi à créer mon tableau de données.

    J'arrive bien à valider le choix en appuyant sur un pushbutton

    Mais je n'arrive pas à faire apparaître le nombre dans la case situé en dessous du tableau.

    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
    function test
     
    uitable(...
    'data',repmat({'11'},6,3),...
    'ColumnName',({'A'}),...
    'CellEditCallback','test',...
    'CellSelectionCallback','test');...
     
    uicontrol(...
        'style','pushbutton',...
        'units','normalized',...
        'String','clique',...
        'position',[0.6, 0.5, 0.4, 0.1],...
        'callback','test');
     
    uicontrol(...
            'style','edit',...
            'Units','normalized',...
            'Position',[0.6,0.05,0.4,0.1],...
            'string','0',...
            'HorizontalAlignment','right',...
        'callback','test');
     
     function button_cb(src,htable) %CellSelectionCallback
    get(handle,'test')

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ta déclaration des callback n'est pas bonne, de la façon dont tu procèdes, chaque évènement callback que tu as défini relance ta fonction principale test.

    De plus si tu souhaites pouvoir éditer les cellules du tableau, il te faudra spécifier la propriété 'ColumnEditable'.

    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
    31
    32
    33
    34
    35
    36
    function test
     
    uitable(...
        'data',repmat({'11'},6,3),...
        'ColumnName',({'A'}),...
        'ColumnEditable', true(1,3),... % les 3 colonnes sont éditables
        'CellEditCallback',@CellEdit,...
        'CellSelectionCallback',@CellSelection);...
     
    uicontrol(...
        'style','pushbutton',...
        'units','normalized',...
        'String','clique',...
        'position',[0.6, 0.5, 0.4, 0.1],...
        'callback',@Clique);
     
    uicontrol(...
        'style','edit',...
        'Units','normalized',...
        'Position',[0.6,0.05,0.4,0.1],...
        'string','0',...
        'HorizontalAlignment','right',...
        'callback',@Edit);
     
    function CellSelection(hObject,eventdata) % CellSelectionCallback
    eventdata.Indices % Indices de la nouvelle cellule
     
    function CellEdit(hObject,eventdata) % CellEditCallback
    eventdata.Indices % Indices de la cellule courante
    eventdata.NewData % Nouveau contenu
     
    function Clique(hObject,eventdata) % Appui sur bouton clique
     
     
    function Edit(hObject,eventdata) % Zone éditable Callback
    get(hObject,'string')   % Contenu

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut
    Bonjour,

    Merci pour tes réponses Winjerome.

    En fait, le bouton "pushbutton" n'est pas forcement utile, puisque quand je clique sur une valeur du tableau, Matlab l'enregistre.

    Il me donne comme réponse son emplacement dans le tableau, et j'aimerais que la valeur selectionnée apparaisse automatiquement dans la zone "edit" que j'ai crée.
    (Ça sera plus simple je pense si je veux réutiliser cette valeur après dans mon interface, et ça sera surtout plus lisible pour l'utilisateur)

    Merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 177
    Par défaut
    Je n'ai rien modifié et d'un coup Matlab me met ça comme erreur...

    ??? Input argument "gcbf" is undefined.
    
    Error in ==> Select_button_Callback at 49
    data=guihandles(gcbf);
     

  8. #8
    Invité
    Invité(e)
    Par défaut
    Attention la modification dont je t'ai parlée: guidata(gcbf,data); ne s'applique qu'aux lignes avec guidata dans les fonctions callback, et non aux deux du début où ça reste gcf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    data=guihandles(gcf);
    
    % D'après les Tag utilisés pour les objets graphiques crées précédemment, la structure data 
    % contient les champs suivant :
    %   data.tableau
    %   data.bouton
    %   data.resultat
    
    % Enregistrement de data dans les données d'application de l'objet Figure
    guidata(gcf,data)
    Ou le handle de la figure que tu crées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fig = figure(...);
    % création des objets dans fig
    data=guihandles(fig)
    % initialisation éventuelles variables
    guidata(fig,data)
    Dernière modification par Invité ; 13/09/2011 à 15h37.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 18/06/2008, 14h20
  2. Réponses: 4
    Dernier message: 30/06/2006, 16h18
  3. Réponses: 13
    Dernier message: 29/03/2006, 21h00
  4. mettre une valeur nulle ds une zone deroulante
    Par gohu13 dans le forum Access
    Réponses: 2
    Dernier message: 14/10/2005, 15h38
  5. Réponses: 11
    Dernier message: 24/07/2003, 09h24

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