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] Chexboxes dans uitable


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 29
    Par défaut [uitable] Chexboxes dans uitable
    Bonjour à tous,

    Je vais droit à l'essentiel. J'utilise l'outil GUIDE pour créer une interface graphique. Dans une fenêtre j'ai créé une uitbale dans laquelle je peux ajouter des colonnes éditables (avec un pushbutton), et dont le nombre de ligne se met à jour en appuyant sur un pushbutton (dépend des données que je veux charger dans la 1ere colonne).

    La deuxième colonne de cet uitbale est au format 'logical'. Je dispose donc de ''chexboxes'' dans toutes les lignes de la 2eme colonne.

    Mon problème est le suivant :

    Quand je clique sur n'importe quelle checkboxe, elle ne se mets pas au niveau 1 (pourtant ma colonne est bien éditable). Ensuite, j'aimerais pouvoir effectuer une action pour toutes les colonnes qui sont à 1. Cette action consiste à sommer la valeur dans la ligne correspondante à celle où la checkboxe est à 1.

    Je ne peux pas utiliser le CellEditCallBack puisque je veux une action uniquement quand ces checkboxes sont toutes cochées, et non au fur et à mesure, et surtout pas quand j'édite d'autres cellules.

    Quelqu'un peut-il m'aider svp?

    D'avance merci pour votre aide et/ou conseils

  2. #2
    Membre très actif
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Par défaut
    Pour la deuxième partie de ta question, si j'ai bien compris: tu peux coder une fonction et tu l'appelle a chaque fois qu'il y'a une action sur une des check box, dans cette fonction tu récupère la valeur de tes checkbox et tu fais ton traitement suivant le nombre des checkbox cochés.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 29
    Par défaut
    D'accord, je pense que je ferais comme ca, mais pour la première partie de la question (du message), je n'arrive toujours pas à me débloquer. Je ne vois pas comment faire pour maintenir une checkboxe cochée et pour lire l'info si une checkboxe est cochée ou non =S.

    D'avance merci pour votre aide et/ou vos conseils

  4. #4
    Membre très actif
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Par défaut
    Essaye de mettre les chekbox a 1 dans la fonction "openingfunction", c'est la fonction d'initialisation. Je ne suis pas sure d'avoir compris ta question

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 29
    Par défaut
    Citation Envoyé par autousto Voir le message
    Essaye de mettre les chekbox a 1 dans la fonction "openingfunction", c'est la fonction d'initialisation. Je ne suis pas sure d'avoir compris ta question
    J'ai essayé de faire ce que tu m'a dit Autousto, mais avec des 0 (''false''). Mais ca ne règle pas le problème du ''index exceeds matrix dimensions''. Je pensais que ca aurait pu donner une dimension correcte au tableau, pour que le message d'erreur ne s'affiche plus, or ce n'est pas le cas.

    Merci qd même pour ta réponse !

  6. #6
    Membre très actif
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Par défaut
    Reagarde la valeur de et au moment de l'erreur. et la taille de data

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 29
    Par défaut
    Bonjour à tous,

    La résolution de mon problème avance, mais là j'ai une erreur, que je ne comprend pas.

    Voici le code que j'utilise dans le ''CellSelectionCallBack'' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data=get(handles.uitable1,'Data');
    cols=get(handles.uitable1,'ColumnFormat');
    if strcmp(eventdata.Indices(2),'logical')
        data{eventdata.Indices(1),eventdata.Indices(2)}=true;
    else
    end
     
    set(handles.uitble1,'Data',data);
    Quand je demande cols, j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cols = 
    'char' 'logical' 'numeric'
    La 2eme colonne est bien logical (c'est ce que j'ai demandé dans le table property editor quand j'ai dessiné mon uitable).

    Voici mon problème, ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Index exceeds Matrix Dimensions.
     
    Error in [...] 
        if strcmp((eventdata.Indices(2),'logical')
    Qu'est-ce que cela signifie? quel index est plus grand que la dimension de quelle matrice?

    Pour information, l'uitable est de taille 45x15.
    Merci

Discussions similaires

  1. Écriture automatique dans UITable
    Par ponoko dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 27/08/2014, 16h48
  2. Sélection d'une cellule dans uitable avec clic droit
    Par Pierrot92320 dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 14/05/2009, 14h40
  3. Sélection d'une ligne dans uitable
    Par Pierrot92320 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 13/05/2009, 09h04
  4. Ajout de ligne dans uitable
    Par Pierrot92320 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 12/05/2009, 13h13
  5. Créer un tableau dans un GUI sans la fonction UITABLE
    Par plobanalec78 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 13/10/2008, 09h27

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