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 :

Aide pour une interface [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Hew
    Hew est déconnecté
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 142
    Par défaut Aide pour une interface
    Bonjour,

    C'est la première fois que je fais une interface graphique avec Matlab, et bon il faut le dire, je suis une quiche
    J'ai commencé par lire l'aide et à utiliser le GUIDE, mais je n'arrivais pas à faire ce que je voulais... Donc j'ai lu les tutos de developpez.net en particulier celui sur le développement efficace des interfaces graphiques.

    Comme je sais déjà bien comment je veux que mon interface soit, j'ai repris le code proposé, j'ai essayé de l'adapter, mais quand je lance l'interface, il n'y a rien dessus, même pas mon bouton "ouvrir"...
    Est-ce que quelqu'un pourrait m'aider à trouver ce qui ne va pas dans mon code ?

    Merci d'avance !!

    Le code :
    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
     
    % Création de l'objet Figure
    handles(1)=figure('units','pixels',...
        'position',[250 250 500 500],...
        'color',[0.925 0.913 0.687],...
        'numbertitle','off',...
        'name','Reconnaissance d un tissu',...
        'menubar','none',...
        'tag','interface');
     
    % Création de l'objet Uicontrol Pushbutton ouvrir
    handles(2)=uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[260 260 20 3],...
        'string','Ouvrir',...    
        'callback',@ouvririmage,...
        'tag','ouvrir');
     
    % Création de l'objet Uicontrol Pushbutton process
    handles(3)=uicontrol('style','pushbutton',...
        'units','normalized',...
        'position',[340 260 20 3],...
        'string','Process',...    
        'callback',@process,...
        'tag','process');
     
    % Création de l'objet Axes 1
    axes('units','normalized',...
        'position',[260 260 60 30],...
        'tag','image');
     
    % Création de l'objet Axes 2
    axes('units','normalized',...
        'position',[340 260 60 30],...
        'tag','candidat');
     
    % Création de l'objet Axes 3
    axes('units','normalized',...
        'position',[400 260 10 30],...
        'tag','confiance');

  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
    Bonsoir,

    Il y a de fortes chances que tes objets soient très très loins de ton interface, pour chacun d'eux tu as mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       'units','normalized',...
        'position',[260 260 20 3]
    Or les unités 'normalized' signifient que le contenant de l'objet fait une taille 1*1.
    Je pense que ça fonctionnera mieux si tu mets ton unité en pixels.

  3. #3
    Hew
    Hew est déconnecté
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 142
    Par défaut
    En effet ça marche déjà mieux comme ça !
    Il ne me reste plus qu'à les mettre à la bonne taille et au bon endroit

    Après je m'attaquerais au fonctionnement des callbacks.

    Merci !

  4. #4
    Hew
    Hew est déconnecté
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 142
    Par défaut
    Re -

    Bon pour le fonctionnement des callbacks...
    Je voudrais ouvrir et afficher une image lorsque je clique sur le bouton "ouvrir" (après j'ai aussi un bouton process, mais bon... on verra plus tard).

    Le code que j'ai mis pour l'instant c'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
     
    % Création de l'objet Uicontrol Pushbutton ouvrir
    handles(2)=uicontrol('style','pushbutton',...
        'units','pixels',...
        'position',[5 480 100 30],...
        'string','Ouvrir',...    
        'callback',@ouvririmage,...
        'tag','ouvrir');
     
    % Création de l'objet Axes 1
    handles(4)=axes('units','pixels',...
        'position',[5 120 255 340],...
        'tag','image');
     
    function ouvririmage(objet, event)
    global handles img
    [img,chemin] = uigetfile({'*.jpg';'*.tif';'*.bmp';'*.*'},'Choisir l image')
    img=imread(fullfile(pathname,filename),'jpg');
    set(handles(4),img);
    Bon déjà mon premier problème c'est qu'en écrivant la fonction avec cet imread, je ne peux que ouvrir des images jpg...
    Et mon deuxième problème c'est que ça ne marche pas

    Est-ce que vous pouvez m'aider encore une fois ? (bon ok ça ne sera peut-être pas la dernière...)
    Merci

  5. #5
    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
    1. L'utilisation des variables globales est fortement déconseillée.
    Tu as plein d'autres possibilités voir là : 2. Méthodes de développement

    2. Ta fonction ouvririmage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [img,chemin] = uigetfile({'*.jpg';'*.tif';'*.bmp';'*.*'},'Choisir l image')
    img=imread(fullfile(pathname,filename),'jpg');
    Ce code est faux :
    que sont les variables pathname et filename ???
    Puisque tu as choisi ton fichier avec uigetfile, pourquoi tu ne l'utilises pas ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [fichier,chemin] = uigetfile({'*.jpg';'*.tif';'*.bmp';'*.*'},'Choisir l image')
    img=imread(fullfile(chemin,fichier));
    3. A l'avenir quand tu dis "ça ne marche pas" merci de mettre le message d'erreur

    la suite demain là il est trop tard...

  6. #6
    Hew
    Hew est déconnecté
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 142
    Par défaut
    1. Ok je vais plutôt utiliser les fonctions imbriquées

    2. Donc j'ai réecrit comme tu disais et cette fois c'est bon. Par contre j'ai un petit problème d'affichage : je lui demande d'afficher mon image dans l'axe1, et il me l'affiche toujours dans l'axe3...
    Comment ça se fait ?

    Je remets un coup le code :
    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
     
    handles(2)=uicontrol('style','pushbutton',...
        'units','pixels',...
        'position',[5 480 100 30],...
        'string','Ouvrir',...    
        'callback',@ouvririmage,...
        'tag','ouvrir');
     
    % Création de l'objet Axes 1
    handles(4)=axes('units','pixels',...
        'position',[5 120 255 340],...
        'tag','image');
     
    % Création de l'objet Axes 3
    handles(6)=axes('units','pixels',...
        'position',[555 120 70 340],...
        'tag','confiance');
     
    %% Création des sous fonctions
        function ouvririmage(chemin,fichier)
        [fichier,chemin] = uigetfile({'*.jpg';'*.tif';'*.bmp';'*.*'},'Choisir l image')
        img=imread(fullfile(chemin,fichier));
        %set(handles(4),imshow(img))
        axes=handles(4);
        imshow(img);
        end
    J'ai essayé plusieurs solutions pour que ça s'affiche dans l'axe1 mais rien à faire, l'image s'affiche toujours dans l'axe 3.

    Pas de message d'erreur cette fois-ci

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

Discussions similaires

  1. [AC-2003] Besoin d'aide pour une interface utilisateur.
    Par rgsk741 dans le forum IHM
    Réponses: 5
    Dernier message: 29/05/2012, 07h12
  2. aide pour une interface
    Par Diabloic dans le forum Débuter
    Réponses: 1
    Dernier message: 31/03/2009, 10h37
  3. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  4. Aide pour une requete ... "COUNT(*)"
    Par mechantebestiole dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/05/2004, 16h27
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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