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 :

Enregistrement des données et visualisation dans une liste


Sujet :

Interfaces Graphiques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Enregistrement des données et visualisation dans une liste
    Bonjour à tous,

    J'ai commencé à apprendre Matlab hier afin de réaliser une petite interface simple visible ci dessous. (Réalisée avec l'interface GUIDE)

    Nom : Developper.png
Affichages : 231
Taille : 15,7 Ko.

    La fenêtre de droite s'ouvre quand je demande la création d'un "nouveau client".

    Sur cette fenetre je peux pour le moment :
    - sélectionner une photo dans parcourir qui s'affiche sur l'axe
    - rentrer n'importe quel texte dans les cellules de droites (Nom, prénom, etc...) car je les ais mis en EDIT.

    J'aimerais à partir de ces fichier Edit et du chemin de l'image créer une base de données simple lorsque j'appui sur le bouton valider comme par exemple :
    Nom : developper2.png
Affichages : 216
Taille : 6,7 Ko
    J'imagine que je dois créer une sorte de matrice?

    J'aimerais également afficher chaque nouvelle personne de la base de données sous la forme Nom-Prénom dans la liste de la fenêtre de droite.

    Je ne sais pas comment procéder pour cela!

    En vous remerciant d'avance pour vos réponses !

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,

    Quelques idées :

    1- Définir le fichier (exemple d'un tableau cellules T) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    clear all
    T=cell(1,6);
    T{1}='Nom';
    T{1,2}='Prénom';
    T{1,3}='Sport';
    T{1,4}='Taille';
    T{1,5}='Poids';
    T{1,6}='Date de naissance';
    T{1,7}='Chemin video';
    save T;% Sauve le tableau T

    2- Mettre dans la function Valider :

    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
    set(handles.uipanel1,'Visible','off')
    vn=get(handles.Nom,'string');
    vp=get(handles.Prenom,'string');
    vs=get(handles.Sport,'string');
    vt=get(handles.Taille,'string');
    vpo=get(handles.Poids,'string');
    vd=get(handles.Date,'string');
    %Mise à jour du fichier
    load T;
    [n,m]=size(T);
    n=n+1;
    T{n,1}=vn;
    T{n,2}=vp;
    T{n,3}=vs;
    T{n,4}=vt;
    T{n,5}=vpo;
    T{n,6}=vd;
    T{n,7}=pwd;
    save T;% Sauve le tableau T
    assignin('base','T',T); % Ecrit T dans le workspace
    xlswrite('T.xls',T);% Fichier excel

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour votre réponse!

    Par contre est-ce normal que Save T ne marche pas?
    "
    Error using save
    Unable to write file T: permission denied.
    "

    Merci de votre temps!

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonsoir,

    Peut-être :
    Avant de commencer le programme matlab il faut cliquer avec le bouton droit sur l'icône du programme matlab et sélectionner "Exécuter en tant qu'administrateur".

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Encore merci tout marche!

    J'aimerais maintenant pouvoir récupérer le lien de ma photo que j'obtient dans parcourir mais je n'arrive pas a stocker le chemin...

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour,
    Un exemple :
    Dans la function Modifier :

    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
    global T 
    TaTextBox.EnterKeyBehavior = 'true';
    set(Nom_programme,'currentaxes',handles.axes2);% Choix figure
    pwddir = fullfile(pwd,'*.jpg');
    D = dir(pwddir);
    stro={D.name};
    [S, v] = listdlg ('PromptString' , ' Sélectionner un fichier:' , ...
        'SelectionMode' , 'single' , ...
        'ListString' , stro);
    set(handles.listbox1,'string',stro(S));
    img = imread(char(stro(S)));
    image(img);
    [n,m]=size(T);
    T(n,7)=stro(S);
    save T;% Sauve le tableau T
    assignin('base','T',T); % Ecrit T dans le workspace
    xlswrite('T.xls',T);% Fichier excel
    Tu peux mettre le fichier en global (à mettre aussi dans la function ou il y a le "load" :

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Alors voila ce que j'ai fait :

    Dans le menu parcourir

    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
    function pushbutton1_Callback(hObject, eventdata, handles)
    axes(handles.axes2) 
    nomfichier=[]; 
    [filename,pathname] = uigetfile({'*.jpg';'*.tiff';'*.bmp'},'File Selector');% recupere le 
    %chemin du répertoire et le nom du fichier 
    chemin=[pathname filename]; 
    % chemin absolu donnant nombre_images'image a utiliser pour la mosaique 
    if isequal(filename,0) 
    annulation ou fermeture de la fenetre 'browser' 
    disp('User selected Cancel') 
    else 
    disp(['Image acquise ', fullfile(filename,pathname)]) 
    end 
    load Photo;
    Photo{1,1}=chemin;
    save Photo;% Sauve le tableau T
    assignin('base','Photo',Photo); % Ecrit T dans le workspace
    I=imread(chemin);
    imshow(I);% Afficher l'image 
    axis off; 
    handles.ImgPret=I; 
    guidata(hObject,handles) % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    Dans le menu valider :

    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
    % --- Executes on button press in pushbutton3.
    function pushbutton3_Callback(hObject, eventdata, handles)
    set(handles.uipanel1,'Visible','off')
    vn=get(handles.Nom,'string');
    vp=get(handles.Prenom,'string');
    vs=get(handles.Sport,'string');
    vt=get(handles.Taille,'string');
    vpo=get(handles.Poids,'string');
    vd=get(handles.Date,'string');
    %Mise à jour du fichier
    load T;
    var1=[Photo{1,1}];
    var1
    [n,m]=size(T);
    n=n+1;
    T{n,1}=vn;
    T{n,2}=vp;
    T{n,3}=vs;
    T{n,4}=vt;
    T{n,5}=vpo;
    T{n,6}=vd;
    T{n,7}=var1;
    save T;% Sauve le tableau T
    assignin('base','T',T); % Ecrit T dans le workspace
    xlswrite('T.xls',T);% Fichier excel
    close;
    Gillot_1;
    Le problème c'est que var1 est vide alors que si je le fait sur un script à part entière c'est plein...

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Enregistrement des données et visualisation dans une liste
    Bonjour,

    C'est normal que var1 soit vide, les functions sont indépendantes.
    Soit tu mets load photo dans "function pushbutton3" soit tu mets photo en global.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci encore une fois c'est parfait tout ce que tu m'as montré fonctionne et je commence à avancer!

    Comme je suis un peu lourd j'ai besoin d'un dernier conseil afin de pouvoir gérer la suite!

    1- Entrer le nom et prénom des personnes inséré dans la database dans la listbox de la figure 1.

    Pour le moment j'ai fait cela

    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
    function listbox2_Callback(hObject, eventdata, handles)
    A = exist('T.mat');
    if A ~= 0
    load T;
    fig = openfig;
    [n,m]=size(T);
    for ii=2:n
    Nom=T{1,ii}
    Prenom=T{2,ii}
     
    participants=[Nom,' ',Prenom];
    str=get(handles.listbox2,'string'); % récupération des données déjà présentes
    str=cellstr(str); % vérification que c'est un tableau de cellules
    str{end+1}='participants'; % Ajout d'un élément
     
    set(handles.listbox2,'string',str) % Mise à jour des données
    end
    end
    mais ça ne fonctionne pas =(

  10. #10
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut Enregistrement des données et visualisation dans une liste
    Bonjour,

    Comme cela en strings :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    TaTextBox.EnterKeyBehavior = 'true';
    set(Forum_panel,'currentaxes',handles.axes2);% Choix figure
    pwddir = fullfile(pwd,'*.jpg');
    D = dir(pwddir);
    stro={D.name};
    [S, v] = listdlg ('PromptString' , ' Sélectionner un fichier:' , ...
        'SelectionMode' , 'single' , ...
        'ListString' , stro);
     
    strv=get(handles.listbox1,'string') % récupération de la liste
    strv(end+1)=stro(S)  
    set(handles.listbox1,'string',strv) % Ajout

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/06/2010, 13h19
  2. Réponses: 0
    Dernier message: 23/07/2009, 09h37
  3. Réponses: 1
    Dernier message: 30/08/2007, 19h19
  4. Comment enregistrer des données de DataGridView dans dataset
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2007, 08h23

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