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 :

l-sytems et interface graphique [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut l-sytems et interface graphique
    Bonjour,

    Je suis en train de travailler sur un projet d'informatique sous MATLAB qui consiste à tracer un arbre avec la méthode des L-sytems. J'ai des fonctions qui fonctionnent très bien quand je les utilise avec les lignes de commandes. Mais quand je dois lier ces fonctions à mon interface, j'ai des problèmes. A noter que je suis vraiment débutant sur MATLAB (d'ailleurs je ne suis pas vraiment spécialiste d'autres langages de programmation non plus) et que c'est ma première interface sous ce langage

    Pour le tracé, j'ai besoin de variables définies par l'utilisateur sur l'interface (tout est dans une même fenêtre) : dans des RadioGroup ou des zones de saisie. Quand j'appuie sur le bouton lancer, je lance une fonction avec (...,'callback', @fonct_callback). Cette fonction se charge de récupérer les infos grâce à des variables globales (avec des 'Selected Object' pour les radios group par exemple), les convertit en nombre comme il est nécessaire pour mes fonctions et je les utilise dans mes fonctions (il y en a 2 : une pour faire évoluer la string, l'autre pour tracer).

    J'ai 2 problèmes :
    - je reçois ce message d'erreur :
    Operands to the || and && operators must be convertible to logical scalar values.
    d'après ce que j'ai compris ça veut dire qu'il y a des variables non scalaires utilisées dans un code de comparaison && (pour un if/elseif). Pourtant je ne comprends vraiment pas pourquoi il y a ce problème car ce sont normalement des scalaires ! Voila une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bouton_saison_choisie=get(saisons,'SelectedObject');
    saison_choisie=get(bouton_saison_choisie,'Tag');
    switch saison_choisie
        case 'hiver'
            saison =1;
    (saisons est le radiogroup concerné) et après je mets saison dans les fonctions et il y a une condition logique contenant 2 variables (ex : il faut que saison et vent soit égaux à 1 et 2 respectivement pour ça) avec && ! je comprends pas où est le problème saison doit etre un nombre là !

    - quand je clique sur le bouton lancer ça ne marche pas (hors erreur précédente), je pense identifier le problème je ne lui dis pas où tracer il faudrait que j'ouvre une nouvelle fenêtre et le trace là mais déjà je ne sais pas comment créer directement une nouvelle fenêtre et surtout que ma fonction tracer n'est pas un simple plot !

    Si vous pouviez m'aider, je vous en serais très reconnaissant car cela fait plusieurs jours que je galère sur ces 2 problèmes (malgré mes recherches je n'arrive pas à les résoudre) !

    Merci d'avance.

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

    Quel est le code rattaché à l'erreur ? Tu as regardé en Débug les valeurs des variables utilisées ?
    Pour créer un nouvel objet Figure, utilise simplement la fonction du même nom :

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bonsoir,

    Quel est le code rattaché à l'erreur ? Tu as regardé en Débug les valeurs des variables utilisées ?
    Que veux tu dire par code de l'erreur ? J'ai le message
    Operands to the || and && operators must be convertible to logical scalar values.
    Grâce au mode débug (que je n'aurai pas pensé spontanément à utiliser, merci), j'ai trouvé ce que je pense être la cause de l'erreur : les variables saison et vent sont vides avant leur utilisation dans la fonction donc forcément ça ne peut pas marcher !
    Mais je ne comprend pas, si les radiogroup (et leur radiobutton enfants) sont des variables globales, je devrais pouvoir récupérer leur valeur avec ce code, non ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bouton_saison_choisie=get(saisons,'SelectedObject');
    saison_choisie=get(bouton_saison_choisie,'Tag');
    switch saison_choisie
        case 'hiver'
            saison =1; 
    ...
    Pour la fenêtre j'ai juste mis h2=figure devant ma fonction de traçage. D'après ce que j'ai compris cela rend la fenêtre h2 active et MATLAB trace tout dans la fenêtre active donc ça devrait être bon ! Me reste donc à régler ce problème de récupération des variables (enfin j'espère qu'il n'y a plus que ce problème).

    EDIT : D'ailleurs le problème de récupération des variables a aussi lieu sur ma variable d'angle (qui n'est qu'une valeur dans une zone de saisie), elle reste à 0 tout le temps ! Il doit y avoir quelque chose que je n'ai pas compris ! Il faut juste que les handles de mes objets soient en variables globales pour pouvoir les utiliser ou il faut autre chose ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par shaldun Voir le message
    Que veux tu dire par code de l'erreur
    Le code qui produit l'erreur.
    Citation Envoyé par shaldun Voir le message
    les variables saison et vent sont vides avant leur utilisation dans la fonction donc forcément ça ne peut pas marcher !
    En effet des variables vides peuvent produire cette erreur.

    Citation Envoyé par shaldun Voir le message
    Mais je ne comprend pas, si les radiogroup (et leur radiobutton enfants) sont des variables globales, je devrais pouvoir récupérer leur valeur avec ce code, non ?
    Quel est le problème précisément ici ?
    Une autre erreur ? Laquelle ?
    Un résultat inattendu ?

    Pour la récupération de variables, je te conseille la lecture du tutoriel Développement efficace des interfaces graphiques (GUI)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    En fait c'est bon maintenant ça marche, en fait c'est parce que j'utilisais 'Tag'/'value' en propriété à récupérer sur mes objets et là, j'ai remplacé par 'string' (avec les str2num qui s'imposent après) et ça marche !

    Merci bien en tout cas pour m'avoir fait pensé au débugueur, ça se voit que je code pas souvent, j'ai pas ce réflexe moi (basique je suppose) !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2004, 19h29
  2. interface graphique utilisateur, que faut-il utiliser?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 01/03/2004, 13h18
  3. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 19h55
  4. [Kylix] Interface graphique pour lognes de commande linux
    Par lecharcutierdelinux dans le forum EDI
    Réponses: 6
    Dernier message: 29/08/2003, 11h20
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 10h49

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