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 :

Ouverture de plusieurs interfaces sur clic bouton [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Ouverture de plusieurs interfaces sur clic bouton
    Bonjour,

    J'ai un petit programme sous GUI permettant d'afficher une cartographie à partir de données (X,Y,Z). Mon programme marche très bien, seulement je souhaiterais l'optimiser pour une chose particulière.
    Sur le 1er interface, j'ai une listbox qui contient les fichiers dans lesquels les données (X,Y,Z) ont été chargées, et un bouton "3D" (nommé "affich_surf_pushbutton" dans le code) qui ouvre une autre fenêtre dans laquelle s'affiche la cartographie.

    Mon problème, c'est que lorsqu'une carto 3D est déjà affichée, si je veux en afficher une 2ème je souhaiterais qu'une nouvelle fenêtre s'ouvre, pour avoir un aperçu des 2 cartos côte à côte. Dans mon programme, la 2ème carto s'affiche sur la même fenêtre que la 1ère.

    Voici mon code pour le 1er interface où la listbox et le bouton "3D" sont contenus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    %Affichage 3D
    function affich_surf_pushbutton_Callback(hObject, eventdata, handles)
             XYZ=handles.XYZ; %Récupération XYZ du fichier sélectionné
             labelXYZ=handles.labelXYZ; %Récupération labelXYZ du fichier sélectionné
             X=XYZ(:,1);Y=XYZ(:,2);Z=XYZ(:,3); %Attribution X Y et Z 
             labelX=labelXYZ(1);labelY=labelXYZ(2);labelZ=labelXYZ(3);%Attribution labelX, Y et Z
     
              surface(X,Y,Z,labelX,labelY,labelZ);  %Affichage carto 3D 
        end;
    Et voici le code de la 2ème interface qui affiche la carto 3D (la fonction "surface"):

    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
    function surface_OpeningFcn(hObject, eventdata, handles, varargin)
        handles.output = hObject;
     
     
    %------------------- RÉCUPÉRATION DES DONNÉES X Y ET Z --------------------
         x=varargin{1};
         y=varargin{2};
         z=varargin{3};
         labelx=varargin{4};
         labely=varargin{5};
         labelz=varargin{6};
         handles.data=[x,y,z,labelx,labely,labelz];
     
     
    %------------------- AFFICHAGE CARTOGRAPHIE -------------------------------
         set(handles.figure1, 'MenuBar', 'figure');
         set(handles.figure1, 'ToolBar', 'figure'); 
     
        %données brutes 
        plot3(x,y,z,'+');
        hold on;
     
        %répartition 3D des données Z 
        F=TriScatteredInterp(x,y,z);
        [XI,YI]=meshgrid(-100:1:100,-100:1:100);
        ZI=F(XI,YI);
        h=surf(XI,YI,ZI);
        axis([-100 100 -100 100 min(min(ZI)) max(max(ZI))]);
        colorbar;
        set(h, 'edgecolor','none')
     
        %paramètres de l'affichage
        grid on;
        xlabel(labelx);
        ylabel(labely);
        zlabel(labelz);

  2. #2
    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
    Bonjour,

    Pour ouvrir une nouvelle figure, utilise la fonction FIGURE.

    Duf
    Simulink & Embedded Coder

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

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    J'y avais déjà pensé, et dans mon code j'avais rajouté une ligne "figure" avant d'invoquer la fonction "surface" pour ma carto 3D. Le problème c'est qu'il n'associe pas le 2ème interface contenant ma carto avec le "figure"

    Il ouvre l'interface nommé "surface" avec la carto, ainsi qu'une autre fenêtre "figure" où rien ne s'affiche

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il te suffit de mettre la variable singleton à false au début de ton fichier surface.m:

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Merci !
    Je pensais bien que c'était un truc tout bête comme cela... Désolée !

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut matlab
    Pour ouvrir une nouvelle figure, utilise la fonction FIGURE.
    mais on sa place cette fonction

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

Discussions similaires

  1. [AC-2000] Attribution de plusieurs valeurs sur un bouton
    Par DkA59 dans le forum IHM
    Réponses: 2
    Dernier message: 14/11/2010, 20h37
  2. affichage text sur clic bouton + condition
    Par gazelle dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/02/2009, 16h36
  3. Modifier requête sur clic bouton
    Par maxime350 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/04/2008, 15h59
  4. ouverture ds frame diff sur action / bouton flash
    Par nonofritsch dans le forum Flash
    Réponses: 1
    Dernier message: 12/11/2006, 01h27
  5. Réponses: 47
    Dernier message: 09/06/2006, 17h16

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