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 :

Gestion des uitable


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Par défaut Gestion des uitable
    Bonjour,

    Je rencontre trois problèmes avec les tableaux créés à l'aide de la fonction uitable:

    - j'ai un tableau avec un nombre de lignes fixe et un nombre de colonnes qui dépend d'une entrée utilisateur (via une edit box), compris entre 2 et 5. Je veux que quand l'utilisateur change le nombre de colonnes le tableau se redimensionne correctement. Pour faire cela j'utilise les propriétés 'Position' et 'extent' du tableau dans le callback de l'edit box:

    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
    function Nbre_Modes_Callback(hObject, eventdata, handles)
    %Lecture du nombre de colonnes
    nbre_modes=str2double(get(hObject,'String'));
     
    %Ecriture de la cellule des entetes de colonnes
    for i=1:nbre_modes
        Noms_cols{i}=['Mode ',num2str(i)];
    end
     
    %On modifie le tableau en conséquence
    set(handles.Table_Initial,'ColumnName',Noms_cols)
    set(handles.Table_Initial,'data',handles.data(:,1:nbre_modes))
    %Correction de l'affichage
    position=get(handles.Table_Initial,'Position');
    extent=get(handles.Table_Initial,'Extent');
    set(handles.Table_Initial,'Position',[position(1:2),extent(3:4)])
     
    %Sauvegarde du nombre de modes
    handles.nbre_modes=nbre_modes;
    guidata(hObject,handles);
    Bizzarrement, pour que cela fonctionne je dois entrer 2 fois de suite la valeur de colonnes souhaitée dans l'edit box; par exemple taper '3' puis appuyer 2 fois de suite sur entrée.Si je ne tape qu'une fois le cadre général du tableau ne rejoint pas le cadre de l'extent. D'autre part si je passe part le debugger, en vérifiant chaque étape une à une le redimensionnement se fait correctement en une seule fois....
    J'ai l'impression qu'en fait matlab ne rafraichit pas la valeur de l'extent du tableau avec les nouvelles données avant que le code soit entièrement exécuté, d'où la nécessité de taper 2 fois. Y a t il un moyen de ne pas avoir a taper 2 fois entrée (c'est un problème mineur mais au moins je le saurais...).

    -Dans un autre GUI j'ai un tableau qui correspond à une liste d'éléments (1 colonne, un nombre variables de ligne); a l'aide d'un pushbutton 'up' et un 'down' l'utilisateur peut, après avoir cliqué sur un élément de la liste, baisser ou augmenter d'un cran son ordre dans la liste. Le code fonctionne mais je n'arrive pas a faire en sorte de garder surligné l'élément séléctionné et déplacé: une fois déplacé le surlignage disparait (et ceux bien que je programme sa sélection pour des clics successifs).
    Sur Matlab Central j'ai trouvé ce dialogue:
    http://blogs.mathworks.com/desktop/2...-with-uitable/

    # MooS replied on November 6th, 2008 at 07:43 UTC :

    Hello,

    Is it posible to highlight (select) a cell using the object handle of the uitable (e.g. by commands in the ‘base’ workspace). I have two figures, one with the table and one with a surface. I would like to show which point in the surface matches to the cell in the uitable by clicking in the surface….

    MooS
    # Ken replied on November 6th, 2008 at 15:15 UTC :

    Hi MooS,

    There is not currently a way to programmatically set the selection in a uitable. Please submit an enhancement request here.

    -Ken
    Donc en attendant une éventuelle évolution est-ce que quelqu'un voit une alternative pour arriver à mes fins?

    -Toujours dans le même tableau, celui ci à une taille fixée par nécessité et la liste d'éléments dépasse généralement sa taille. L'utilisateur doit donc utilise la barre de scroll pour descendre faire sélection si besoin est. Mais une fois qu'il change la position de l'élément dans la liste, la scroll bar du tableau revient à sa position initiale ce qui est assez déroutant l'utilisateur ne voit plus sa sélection et doit re-scroller vers le bas pour vérifier que l'ordre a bien été changé. Toujours sur Matlab Central, même discussion j'ai vu:

    # Ken replied on April 17th, 2009 at 13:54 UTC :

    Hi Phillip,

    Unfortunately, programmatic scrolling of a uitable is not supported yet. I’ve created an enhancement request for this.

    -Ken
    Donc, même question que précédemment, quelqu'un voit-il un moyen de contourner le problème??

    Merci pour votre aide!

    Bruno

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 498
    Billets dans le blog
    1
    Par défaut
    Salut !

    Je n'ai jamais utilisé les uitable donc pour les questions 2 et 3 je ne pourrais pas t'aider.

    Pour la première question, j'ai peut-être une idée : essayer de mettre un drawnow juste après avoir changer la taille de ton tableau. Ton problème est peut-être similaire à celui-ci

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Par défaut
    salut,

    well done, le drawnow fonctionne a merveille situé juste avant de récupérer les propriétés. Merci pour l'astuce!
    a+

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 498
    Billets dans le blog
    1
    Par défaut
    De rien

Discussions similaires

  1. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 12h01
  2. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 10h40
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 13h44
  4. Réponses: 4
    Dernier message: 04/07/2002, 13h31
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 15h11

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