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 :

Ouvrir un fichier sous gui


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 83
    Par défaut Ouvrir un fichier sous gui
    Bonjour

    voilà, j'ai une jolie petite interface graphique dans laquelle j'ouvre un fichier .txt et je l'affiche, etc, etc

    Jusqu'à présent, je l'ouvrais en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = load ('mesure.txt')
    Maintenant, ce que j'aimerais faire, c'est mettre un bouton "ouvrir" qui permetrait d'ouvrir ce fichier, sans avoir à modifier le nom du fichier dans le code.

    Pour cela, j'ai crée un uipushtool Open, et j'ai mis le code suivant dans son Callback :

    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
    clear all;
     
    % Récupération du fichier ainsi que son chemin d'accès
    [filename, pathname,] = uigetfile('*.txt', 'Choisir le fichier');
    name=[pathname filename];
     
    % Définition des paramètres temps et x, 1ère et 2 colonne du fichier texte
    [temps x] = textread(filename,'%f%f','headerlines',3); % 'headerlines',3 sert à passer les 3 première lignes, car ce sont des champs de texte ou vide
     
    %Mise des paramètres dans la structure handles
     
    handles.temps = temps;
    handles.x= x;
    handles.pathname = pathname;
    handles.filename = filename;
    handles
    guidata(hObject,handles);%sauvegarde de la structure handles
    Cependant, il me met ensuite qu'il ne connait pas le champt "temps", "x", "filename", et "pathname" dans OpeningFcn.
    Or, au début de OpeningFcn, j'ai bien mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handles.output = hObject;
    et j'ai besoin de ces variables dans OpeningFcn..
    Je vois pas d'où peut venir mon erreur, si quelqu'un avait une idée...

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je vois que tu as toujours du mal entre les *Fcn et les callback

    La Figure_OpeningFcn ne va s'exécuter qu'une seule fois : à l'ouverture de la figure.
    Ton callback lui s'exécutera à chaque fois que tu cliquera sur ton bouton.

    Or tu ne peux cliquer sur ton bouton qu'une fois que ta figure est ouverte.

    Pourquoi tiens-tu à récupérer ces variables dans ton OpeningFcn ? (en mettant en parallèle avec ton autre post a priori tu ne vas avoir besoin de tes données que dans le callback du popup, non ?)

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 83
    Par défaut
    oui, j'avoue, je galère complètement...


    dans le OpeningFcn, je n'ai plus besoin de rien, effectivement.

    Par contre, dans le uipushtool3_ClickedCallback, qui correpond au bouton Ouvrir, je vais avoir besoin de axes1 pour pouvoir afficher ma 1ère courbe, et il ne connait pas axes1.

    Le code est le 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    function uipushtool3_ClickedCallback(hObject, eventdata, handles)
    % hObject    handle to uipushtool3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % 
    clear all;
     
    % Récupération du fichier ainsi que son chemin d'accès
    [filename, pathname,] = uigetfile('*.txt', 'Choisir le fichier');
    name=[pathname filename];
     
    % Définition des paramètres temps et x, 1ère et 2 colonne du fichier texte
    [temps x] = textread(filename,'%f%f','headerlines',3); % 'headerlines',3 sert à passer les 3 première lignes, car ce sont des champs de texte ou vide
     
    %Mise des paramètres dans la structure handles
    handles.temps = temps;
    handles.x= x;
    handles.pathname = pathname;
    handles.filename = filename;
    handles
    % Affichage sur la 1ère courbe
     
    axes1 = handles.axes1;
    temps= handles.temps;
    x = handles.x;
    Te = (temps(length(temps)) - temps(1)) / length(temps); % Période d'échantillonnage
     
     
    plot (axes1,temps, x); % Affichage du signal en temporel
    xlabel(axes1,'Temps (s)');
    ylabel(axes1,'Amplitude ( mV )');
    title(axes1,'Signal Doppler brut','Color','b');
     
    %Affichage du chemin du fichier ouvert dans une static text
     
    pathname = handles.pathname;
    filename = handles.filename;
    set(handles.text4,'String',fullfile(pathname,filename));
     
     
    guidata(hObject,handles);%sauvegarde de la structure handles
    et le handles me donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    handles = 
     
           temps: [30523x1 double]
               x: [30523x1 double]
        pathname: [1x100 char]
        filename: '1 vehicule partant.txt'
    Comment faire l'affichage de ma courbes sur axes1 s'il ne la connait pas?

    Edit :

    ==> Autant pour moi, j'avais oublié de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handles = guidata(gcbf); %recup de la structure handles à jour
    Normal qu'il ne connaissait pas axes1...désolé

Discussions similaires

  1. Ouvrir un fichier sous mot de passe sous android
    Par pmithrandir dans le forum Android
    Réponses: 0
    Dernier message: 16/06/2011, 11h19
  2. Ouvrir un fichier sous Linux avec PHP
    Par ApocKalipsS dans le forum Langage
    Réponses: 3
    Dernier message: 09/04/2010, 23h50
  3. [LOGICIEL] Ouvrir des fichiers sous mac os x
    Par didi71 dans le forum Apple
    Réponses: 5
    Dernier message: 22/05/2009, 11h07
  4. Ouvrir un fichier sous Linux
    Par mcdelay dans le forum Langage
    Réponses: 5
    Dernier message: 18/03/2008, 16h22

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