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 :

utiliser "dialog" pour sélectionner des fichiers


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut utiliser "dialog" pour sélectionner des fichiers
    Bonjour,
    Je dispose d'un certain nombre de fichiers de données et je souhaite pouvoir sélectionner, dans mon GUI, avec lesquels travailler. On m'a dit d'utiliser "dialog". J'ai regardé dans le GUI, ce "bouton" n'existe pas et j'ai juste trouvé cette syntaxe
    h = dialog('PropertyName',PropertyValue,...)
    J'ai vu aussi qu'il fallait utiliser la fonction uigetfile pour ouvrir mon fichier.
    Où suis-je censée mettre ce code? J'ai essayé avant et après les fonctions OpeningFcn et OutputFcn mais j'obtiens des erreurs.
    Dois-je d'abord utiliser une list box contenant les noms des fichiers et ensuite utiliser ce "dialog?"

    Merci d'avance

  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
    "On" ne t'a pas donner plus d'explications ?
    A mon avis "on" voulait plutôt parler d'une boîte de dialogue qui est le nom de l'interface qui s'ouvre quand on utilise UIGETFILE.

    Donc oui une solution est d'avoir dans ton interface un bouton pour sélectionner le fichier dans le callback duquel tu feras appel à la fonction UIGETFILE.

    Note : UIGETFILE permet de sélectionner un fichier, mais pas de l'ouvrir.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    "On" ne t'a pas donner plus d'explications ?
    A mon avis "on" voulait plutôt parler d'une boîte de dialogue qui est le nom de l'interface qui s'ouvre quand on utilise UIGETFILE.
    "on", mon prof finlandais qui me parle en anglais, m'a pas donné plus d'info. Tout du moins, je n'ai pas compris plus. J'ai compris qu'il fallait que je regarde les options de dialogu, c'est tout :s

    Merci pour l'explication!

    Est-ce que je peux utiliser un popup menu pour sélectionner mon fichier, sachant que je devrais utiliser - et donc sélectionner - plusieurs fichiers. Ne serait-ce pas plus judicieux d'utiliser une list box?

  4. #4
    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
    Citation Envoyé par jane40 Voir le message
    Ne serait-ce pas plus judicieux d'utiliser une list box?
    Oui. Avec le popup tu ne pourras sélectionner qu'un item.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 219
    Par défaut
    Finalement, je crois pouvoir faire une multi-sélection assez simplement, sans passer par une list box:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function filepushbutton_Callback(hObject, eventdata, handles)
    [filename, pathname, filterindex] = uigetfile( ...
    {  '*.mat','MAT-files (*.mat)'; ...
       '*.*',  'All Files (*.*)'}, ...
       'Pick a file', ...
       'MultiSelect', 'on');
    J'ai bien une fenêtre qui s'ouvre, pas exactement à l'endroit où je veux mais je n'arrive pas à préciser le path, j'obtiens des erreurs.
    Cette fonction ne me permet que de sélectionner mes fichiers. Après je dois encore les charger. Quand je ne faisais pas de sélection, je les chargeais directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk1.mat');
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\JTL_julk2.mat');
    A présent, les fichiers que j'ai sélectionnés me sont retournés dans filename donc j'essaie de faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function filepushbutton_Callback(hObject, eventdata, handles)
    [filename, pathname, filterindex] = uigetfile( ...
    {  '*.mat','MAT-files (*.mat)'; ...
       '*.*',  'All Files (*.*)'}, ...
       'Pick a file', ...
       'MultiSelect', 'on');
     
    for i_file = 1:length(filename)
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\filename[i]');
    end
    J'obtiens cette erreur :
    ??? Error using ==> load
    Unable to read file C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\filename[i]: No such file or directory.

    Error in ==> fisherdiscriminantanalysis>filepushbutton_Callback at 60
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\filename[i]');

    Error in ==> gui_mainfcn at 75
    feval(varargin{:});

    Error in ==> fisherdiscriminantanalysis at 42
    gui_mainfcn(gui_State, varargin{:});

    ??? Error while evaluating uicontrol Callback.
    Je me doute bien que ma syntaxe
    load('C:\Documents and Settings\jane\Bureau\projetmatlab\JTLdata\filename[i]');
    n'est pas correcte mais j'ai essayé plusieurs choses et c'est ce que j'ai trouvé de mieux.

  6. #6
    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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    La synthaxe de chargement des fichiers n'est en effet pas correcte, il faudrait faire comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i_file = 1:length(filename)
    load(fullfile(pathname, filename{i_file}));
    end
    Au passage tu devrais jeter un oeil à la FAQ : Comment nommer une suite de fichiers : nom_1.ext, nom_2.ext... nom_N.ext ?

    Bonne journée,
    Duf

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/08/2009, 13h31
  2. utiliser ls et xargs pour déplacer des fichiers
    Par walrus_55 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 06/04/2007, 10h22
  3. Réponses: 4
    Dernier message: 25/11/2005, 11h25

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