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 :

Déplacement de uicontrol de type 'text'


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Femme Profil pro
    Doctorante
    Inscrit en
    Août 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Déplacement de uicontrol de type 'text'
    Bonjour à tous,

    J'ai déjà posté quelque chose à peu près sur le même sujet récemment, mais je ne trouve pas de solution qui fitte avec mon problème.

    Voilà donc un nouveau post pour le présenter de manière plus précise.

    Tout d'abord je définis une fenetre avec des uicontrol de types différents :
    - Un slider
    - Et d'autres de type 'text' ou 'edit' dont certains sont donnés dans une boucle, comme vous pouvez le voir dans le code suivant :

    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
    fenetre=figure;
        set(fenetre,'position',[20,50,460,680]);
        set(fenetre,'Name','Plage de variation des variables');
        set(fenetre,'menubar','none');
     
    handles.slider=uicontrol(fenetre,'style','slider','min',0,'max',100,'position',[435,20,20,640],'value',100,'Callback',@Plot_GUI_variables);
    handles.indices=100;
     
    position=((650-(650+nombre_variables*(28+22)))/100)*handles.indices+(650+nombre_variables*(28+22));
     
    handles.text1=uicontrol(fenetre,'style','text','position',[9,position,100,22],'string','Variable','fontsize',12,'fontweight','bold');
    handles.text2=uicontrol(fenetre,'style','text','position',[115,position,220,22],'string','Varie entre... et ...','fontsize',12,'fontweight','bold');
     
     
    for i=1:nombre_variables
        position=position-28;
        handles.text=uicontrol(fenetre,'style','text','position',[9,position,100,20],'string',i,'fontsize',10);
        handles.edit1=uicontrol(fenetre,'style','edit','position',[115,position,109,22],'string','xxx');
        handles.edit2=uicontrol(fenetre,'style','edit','position',[225,position,109,22],'string','xxx');
    end     
     
        position=position-28;
        handles.bouton1=uicontrol(fenetre,'style','push','position',[336,500,100,40],'string','Continuer','callback','saisie_elements','fontsize',12);
     
        guidata(fenetre,handles)
    Et ensuite j'essaie de modifier la position des uicontrol en fonction de la position du slider, dans la fonction Callback correspondante :

    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
    function Plot_GUI_variables(hObject,eventdata)
    global nombre_variables
     
    fig = get(hObject,'parent');
    handles = guidata(fig);
    handles.indices = get(hObject,'Value');
     
    position=((650-(650+nombre_variables*(28+22)))/100)*handles.indices+(650+nombre_variables*(28+22));
     
    set(handles.text1,'position',[9,position,100,22]);
    set(handles.text2,'position',[115,position,220,22]);
     
    for i=nombre_variables
        position=position-28;
        set(handles.text,'position',[9,position,100,20]);
        set(handles.edit1,'position',[115,position,109,22]);
        set(handles.edit2,'position',[225,position,109,22]);
    end
     
    position=position-50;
    set(handles.bouton1,'position',[150,position,100,40]);
     
    guidata(fig,handles)
    Comme vous le voyez, j'essaie de modifier la position des uicontrol dans une boucle, car je n'ai pas donné de nom précis à chacun des uicontrol créés précédemment. Je ne sais même pas combien j'en ai dans la figure.

    Evidemment, le déplacement de ces uicontrol pose problème et ne fonctionne pas tel quel dans la boucle.

    Pouvez vous m'aider ? Sauriez vous comment je pourrais résoudre ce problème ?

    Merci beaucoup,
    Bien cordialement,

    Noëlie

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fig = get(hObject,'parent');
    handles = guidata(fig);
    peut se simplifier en handles = guidata(gcbf);.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=1:nombre_variables
        position=position-28;
        handles.text(i) = uicontrol(fenetre,'style','text','position',[9,position,100,20],'string',i,'fontsize',10);
        handles.edit1(i) = uicontrol(fenetre,'style','edit','position',[115,position,109,22],'string','xxx');
        handles.edit2(i) = uicontrol(fenetre,'style','edit','position',[225,position,109,22],'string','xxx');
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=1:nombre_variables
        position=position-28;
        set(handles.text(i),'position',[9,position,100,20]);
        set(handles.edit1(i),'position',[115,position,109,22]);
        set(handles.edit2(i),'position',[225,position,109,22]);
    end
    Les (i) car sinon tu écrases à chaque fois le handle et ne gardes au final que le dernier de la boucle.

    Sinon j'opterais plutôt de tout regrouper dans un uipanel qui serait le seul à vraiment se déplacer, déplaçant tous ses enfants avec lui.
    Dernière modification par Invité ; 01/10/2014 à 23h40.

Discussions similaires

  1. Effacer un uicontrol de type "texte"
    Par oliv27400 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 11/07/2013, 13h34
  2. Comment définir une couleur par ligne dans un objet uicontrol de type Text
    Par VinceDA dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/05/2007, 12h13
  3. [access] champs type text sur un pc blob sur un autre
    Par Harry dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/07/2004, 09h30
  4. Fonction LEFT sur champ de type "text" : méthodes
    Par MatthieuQ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/06/2004, 11h15
  5. [UPDATE] Mise à jour d'un type text
    Par nico1492 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/01/2004, 13h26

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