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 :

Multi-fenêtre/onglet via Guide et transfert de données


Sujet :

Interfaces Graphiques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Multi-fenêtre/onglet via Guide et transfert de données
    Bonjour à tous,

    Je permets de créer un poste car je fais face à un problème "d'architecture" de mon code Matlab et malgré des recherche sur la toile, je n'ai pas encore trouvé la solution adéquate.

    Alors voilà, j'ai repris une application Matlab avec interface graphique mélangeant handles-set-get-setappdata-getappdata/variables globales-locales, code généré par le Guide, code en ligne de commande pour créé les objets graphiques et les traiter.
    Après analyse du code j'ai décidé de tout reprendre de zéro car le maintien du code et la mise en place de d'amélioration était presque impossible.
    Je me suis alors lancer dans une version où tout était codé en lignes de commandes et passait une structures de données globale sauvegardant toutes les informations... malheureusement, malgré la clarté de mon code, mes responsables ont préféré que je bascule tout mon code en utilisant le Guide. Bref, voici pour le contexte.


    J'ai aujourd'hui une fenêtre (figure) principale généré par le Guide on l'on entre des paramètres, et là je souhaiterais pouvoir lancer un nouvelle fenêtre (figure) contenant toutes les résultat de mes simulations indexé dans des onglets (un par simulation s'il y en a plusieurs) et divers points me posent problèmes:

    - Dans ma première version à la main en ligne de code, j'arrivais à lancer une nouvelle fenêtre par simulation aisément, or depuis que je passé sur la version "Guide", je dois avoir un souci de handles, car à chaque fois le code me réécris sur la nouvelle fenêtre courante (en gros une seule nouvelle fenêtre est créée et actualisée).
    Voici pour illustration la commande qui lance la nouvelle figure, code qui fonctionnait en ligne de codes mais plus avec le Guide et je ne comprends pas pourquoi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for I=1:nbSorties
          FigureSimulation(handles.figurePrincipale, I);
    end
    "I" étant l'indice de chaque simulation.
    Donc j'espère que quelqu'un pourras éclairer ma lanterne sur ce premier point?


    - Ensuite, une fois que ce problème résolu, j'aimerais savoir si au lieu de créer de nouvelles figures à chaque simulation, on ne pourrait pas créer une unique nouvelle figure et indexer par des onglets pour chaque simulation, j'ai aperçu le paramètre "WindowStyle" avec l'argument "docked", est-ce la bonne piste pour réaliser ce que je souhaite?


    - Enfin, j'aimerais avoir une précision sur l'utilisation du handles via "appdata" via "setappdata/getappdata", de ce que j'ai compris, lorsque l'on crée une variable, via cette méthode, elle à sont propre workspace et est accessible via "getappdata" partout dans l'application et mise-à-jour partout dans l'application avec "setappdata" et ce quelque soit la fonction générée par le guide. Quelqu'un pourrait-il me confirmer dans mes dire ou m'expliquer le cas échéant quelle serait mon erreur de compréhension? Je pose cette question car j'ai là encore des problèmes qui me sont apparus...


    Si jamais vous avez connaissance d'une doc' ou un autre topic répondant clairement à mes questions, je suis preneur, j'ai lu pas mal de choses sur le sujet certes, mais j'en ai sans doute manqué!



    Merci d'avance pour votre aide.



    Basto

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    1. Pour éviter cela, il faut mettre la ligne de début gui_Singleton = 1; à 0.
    2. Non cette propriété va juste lier la figure dans l'application MATLAB, pas sur une figure en particulier. Je verrai plus l'utilisation d'objets uipanel dans ce sens.
    3. Oui, tu as bien compris, je rajouterais que ce workspace est lié au handle fourni en premier argument.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci Winjerome!

    1. Effectivement, après quelques rapides tests cette solution semble adéquate. D'ailleurs cette ligne de code est générée automatiquement dans une zone où l'on n'est pas "sensé" faire d'édition, c'est pourquoi je pense que je n'aurais jamais trouvé... je ne cherchais pas au bon endroit.

    2. Actuellement je "switch" les résultats de simulations via un "popupmenu" en actualisant les divers champs et un graphique, à voir si je repasse finalement en "multi-figures". En y réfléchissant il est vrai que l'utilisation de d'"uipanel" pourrait être adéquate également.
    Enfin quand tu dis:
    Non cette propriété va juste lier la figure dans l'application MATLAB, pas sur une figure en particulier.
    Je ne comprends pas trop ce que tu entends par l'application Matlab? Est-ce une référence en particulier (lien)? Vers quoi? Et surtout je n'arrive par à comprendre pourquoi on ne peut liée une "sous-figure" à une autre figure qui stockerait différentes "sous-figure"? Grosso-modo, je ne comprends par trop l’utilité de cette option, l'utilisation de "docked", semble assez différentes de "modal" et "normal".

    3. Avec cette confirmation, une nouvelle analyse du mon code m'a permis de corriger les anomalies.

    Quoi qu'il en soit je te remercie de aide.


    Basto

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tape ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    figure('WindowStyle', 'docked')
    tu devrais comprendre.
    Les objets Figures ne peuvent pas être enfants d'autres objets Figure, on a cette hiérarchie

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Oui, cette exemple de ligne de code clarifie la situation dans mon esprit. Bien que connaisse plus ou moins la hiérarchie des différents éléments de Matlab, j’espérerais qu'il subsiste certaines exceptions.

    Quoi qu'il en soit encore encore merci de ton aide.


    Basto

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

Discussions similaires

  1. EXPORT multi onglet SAS GUIDE
    Par Sasguidebb dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 02/09/2013, 18h02
  2. Transmission de popups multi-fenêtres/onglets
    Par gwinyam dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/09/2012, 11h22
  3. passage d'onglet à onglet via controle
    Par yorki dans le forum Access
    Réponses: 4
    Dernier message: 15/03/2006, 16h43
  4. Réponses: 2
    Dernier message: 26/01/2006, 21h59
  5. Transfert de données securisées via Internet ???
    Par franck06 dans le forum Développement
    Réponses: 3
    Dernier message: 22/11/2004, 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