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 :

Stocker pathname d'un fichier dans une componente static text


Sujet :

Interfaces Graphiques

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Stocker pathname d'un fichier dans une componente static text
    J'ai une forme avec un pushbutton ou j'ai selecte une image qui me rend en axes. Je veux quand l'image s'affiche en axes son pathname est ecrit automatiquement dans la componente static text.

    Donc ma forme a seulement trois composants(1pushbutton avec la methode open dialogue,1 axes et 1 static text).

    Si quelqu'un peut m'aider. J'essaye de faire cela et ca ne marche :

    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
     
    [filename,pathname] = uigetfile({'*.jpg';'*.png';'*.bmp'}); %selecting the file with an open dialog
    if ~ischar(filename) %on cancel press function ischar returns 0
        errordlg('Error!','No file selected!'); %appears an error dialog on cancel press
        return;
     end
     
    img = imread(fullfile(pathname,filename)); % reading the file stored in path
    imshow(img);
    imshow(img,'parent',handles.axes1);  %displays image selected in component axes1
    %[filename,pathname] =uigetfile('*.jpg');
    %img=imread(fullfile(pathname,filename),'jpg');
    %
     
    %R='C:\MATLAB71\work';
    %the code that isn't working storing in static text the path of every file
    %loaded in axes1 on pushbutton1 press named Load image
    str = get(handles.text1,'string');
    str = cellstr(str);
    str{end+1} = fullfile(pathname,filename);
    set(handles.text1,'string',str); %storing in listbox the path of every image loaded in axes1
    load(fullfile(pname,fname),'C:\MATLAB71\work');
    set(handles.text1,'String','C:\MATLAB71\work');
    J'ai suppose que l'images se trouve dans pathname(chemin):

    C:\MATLAB71\work

    Si vous pouvez nettoyez pour qu'il stoque automatiquement en static text pathname du photo qui se trouve en axes1(simultanement quand il est mise en axes1 stoquer en static text le chemin complet de la photo selectee que est affiche en axes1). Ca c'est ce que je veux.

  2. #2
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Source pour afficher le path en static text d'une image qui se trouve charge en axes1
    Ici c'est la source complete!


    http://www.mediafire.com/?ol1954nobmm

  3. #3
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonsoir,

    Pour ce que tu veux faire (si j'ai tout bien compris...), il suffit de remplacer ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    str = get(handles.text1,'string');
    str = cellstr(str);
    str{end+1} = fullfile(pathname,filename);
    set(handles.text1,'string',str);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set(handles.text1,'string',fullfile(pathname,filename));
    Ce code applique à la propriété String de l'objet text1 la valeur fullfile(pathname,filename) ou en français : le chemin complet composé du répertoire (pathname) et du fichier (filename) est affiché dans l'objet (text1).

    Normalement ca doit fonctionner tel quel... Sauf si une erreur se produit

    Bonne soirée,
    Duf

    P.S. Pour plus de clarté dans ton code, je te conseille de donner des noms plus explicites à tes objets (par exemple, EdFilename au lieu de text1). Mais bon, c'est pas la priorité pour le moment...
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  4. #4
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Il ne stoque en static text l'image que je choisis en axes1
    function pushbutton1_Callback(hObject, eventdata, 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)
    [filename,pathname] = uigetfile({'*.jpg';'*.png';'*.bmp'}); %selecting the file with an open dialog
    if ~ischar(filename) %on cancel press function ischar returns 0
    errordlg('Error!','No file selected!'); %appears an error dialog on cancel press
    return;
    end

    img = imread(fullfile(pathname,filename)); % reading the file stored in path
    imshow(img);
    imshow(img,'parent',handles.axes1); %displays image selected in component axes1
    set(handles.text1,'string',fullfile(pathname,filename));


    C'est ca que j'ai modifie. Aussi j'ai eclairer la propriete string du static text pour que je puisse voir le pathname de l'image que j'ajoute dans axes1 mais il ne m'apparait rien en static text.

    Pourquoi?

    J'attends ton reponse!

    Je dois mettre le code dans le callback create_fcn de la composante static text je suppose. Parce que dans le pushbutton1_callback il ne stoque le pathname en static text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function text1_CreateFcn(hObject, eventdata, handles)
     
    set(handles.text1,'string',fullfile(pathname,filename));

  5. #5
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Citation Envoyé par mihaispr Voir le message

    Je dois mettre le code dans le callback create_fcn de la composante static text je suppose. Parce que dans le pushbutton1_callback il ne stoque le pathname en static text

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function text1_CreateFcn(hObject, eventdata, handles)
     
    set(handles.text1,'string',fullfile(pathname,filename));
    Bonjour,

    Non c'est sur que tu n'as pas mettre cette ligne dans le CreateFcn (globalement cette fonction n'est appelé qu'à la création de l'objet donc aucun risque que ca t'affiche correctement ton texte, ca devrait meme te générer une erreur...)

    Sinon c'est bizarre que ca ne fonctionne pas...
    - Es-tu sûr que la propriété Visible de ton static (text1) est à 'on'?
    - Es-tu sûr que fullfile(pathname,filename) n'est pas vide?
    - Question idiote mais es-tu sûr que ton static est bien dans la fenêtre?

    En gros tu devrais essayer de mettre la ligne suivante dans ton code, pour voir si le text1 est bien visible dans ton interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set(handles.text1,'string','Ceci est un essai d''affichage');
    Bon courage,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  6. #6
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut J'ai verifie tous ce que tu as dit
    Ok. J'ai verifie ce que tu as dit.

    La componente static text (tag text1 est place sur la forme).

    La propriete de static text est Visible on

    Donc quand je presse le boutton pushbutton1 open dialog je selectionne ma photo il m'affiche en axes1 la photo mai dans static text(text1 tag) rien ne passe

    Obs. Static text n'a pas ecrit rien dans la propriete string pour que je puisse voir le code que tu m'as donne Essai d'affichage. Et il n'affiche pas ce message.

    Sur ma forme il y a 3 composante: 1 pushbutton,1axes et 1 static text.

    Voila le callback dans le pushbutton1 je ne sais pas pourquoi il n'affiche ce test en static text. C'est completement bizarre c'est aussi mon avis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function pushbutton1_Callback(hObject, eventdata, handles)
    [filename,pathname] = uigetfile({'*.jpg';'*.png';'*.bmp'}); %selection du fichier en utilisant open dialog
     
    if ~ischar(filename) %en tapant cancel il affiche une message d'erreur 
        errordlg('Erreur!','Aucun fichier selectee!'); %erreur dialogue quand on presse sur cancel
       return;
     end
     
     
    img = imread(fullfile(pathname,filename)); %lire le fichier image du pathname
    imshow(img); %afficher l'image choisi en axes1
    set(handles.text1,'string',fullfile(pathname,filename));
    %set(handles.text1,'string','Ceci est un essai d''affichage');


    Essaie de trasser sur la forme ces trois composantes et dis moi si le code du pushbutton1_callback marche chez toi. Chez moi non

  7. #7
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Ca marche maintenant
    Je trouvais l'erreur je suis tres content parce qu'il marche maintenant!

    Merci beacoup duf!

    Il marche le teste avec le pathname et aussi avec le message j'avais une petite erreur donc je m'avais pris compte.

    Je marque comme sujet resolu!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/09/2017, 17h03
  2. Réponses: 3
    Dernier message: 26/04/2008, 17h58
  3. Réponses: 5
    Dernier message: 27/04/2007, 15h06
  4. Afficher contenu d'un fichier dans une zone de texte
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 23/09/2006, 14h09
  5. stocker les nom de fichiers dans une base
    Par Corben dans le forum Windows
    Réponses: 2
    Dernier message: 04/01/2006, 15h50

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