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

Python Discussion :

Récupérer coordonnée x1 d'un widget


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut Récupérer coordonnée x1 d'un widget
    Bonjour à tous.tes,

    Comment fait-on pour ne récupérer qu'une seule des coordonnées d'un widget.
    Doit-on l'extraire du "tulpe" (x1, y1, x2, y2) ?

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Soit la fonction/méthode permet, via un paramètre particulier, de spécifier la valeur cherchée ; soit il existe une autre méthode avec un nom ressemblant à la première mais dédiée à cibler précisément la valeur cherchée (Qt est friand de ce genre de possibilités mais Tk connais pas) ; soit en dernier recours effectivement tu reçois un tuple/liste/dictionnaire contenant plein d'infos et à toi d'en extraire l'information précisément ciblée.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Je n'ai pas trouvé du coté méthode pour n'extraire qu'un seul paramètre, je vais donc bidouiller le "tulpe".
    Merci pour ton retour.👍

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par scalpel Voir le message
    Merci pour ton retour.👍
    C'est toujours un plaisir et ce n'est pas de la bidouille.
    Ce terme péjoratif fait référence à une action compliquée pour obtenir un résultat considéré par ailleurs comme assez simple. Par exemple pour avoir la somme de 1 à n on peut faire une boucle et additionner (ça c'est de la bidouille) ou utiliser la formule générale de la somme d'une suite arithmétique qui, dans ce cas, s'écrit Formule mathématique.
    Ou pour faire avancer un serpent d'une case on peut déplacer chaque anneau de la tête à la queue (ça c'est de la bidouille) ou déplacer le dernier anneau sur la case de destination (sais pas pourquoi je prends cet exemple précis moi )

    Exemple: ce code, trouvé dans le forum et qui permet de récupérer le mois en français et l'année courante en passant par 4 variables plus une liste qui ne sera jamais modifiée, c'est de la bidouille
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from datetime import datetime
    current_datetime = datetime.now()
    current_date = current_datetime.strftime("%B%Y") 
        #print(current_date)
    Mois=['Jjanvier','février','mars','avril','mai','juin','juillet','aout','septembre','octobre','novembre','décembre']
    mois = current_datetime.date().month
        #print(Mois[mois])
    Q = Mois[mois-1]
        #print(Q)
    current_date = Q + current_datetime.strftime("%Y")

    Un code qui produit le même résultat
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from datetime import date
    mois=(
    	'janvier', 'février', 'mars', 'avril',
    	'mai', 'juin', 'juillet', 'aout',
    	'septembre', 'octobre', 'novembre', 'décembre',
    )
    today = date.today()
    current_date = "%s%s" % (
    	mois[today.month - 1],
    	today.strftime("%Y"),
    )
    Juste 2 variables (une pour mémoriser le travail intermédiaire et l'autre pour récupérer le travail final). Et la liste est devenue tuple.

    Un tuple, qui correspond à une liste non modifiable (perso dans mon cours je préfère parler du tuple en premier et ensuite rajouter la liste comme étant un tuple modifiable) offre toutes les possibilités d'accès à ses éléments internes et cet accès est parfaitement légitime. Donc ce n'est pas de la bidouille.

    Et Python te rajoute même des possibilités plutôt sympa pour rendre ton code encore plus explicite
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> data=(1, 2, 3, 4)
    >>> data[0]
    1
    >>> data[3]
    4
    Pas super parlant (que représente l'élément [3] ? x1, x2, y1, y2 ???)

    Et maintenant...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> data=(1, 2, 3, 4)
    >>> data=dict(zip(("x1", "y1", "x2", "y2"), data))
    >>> data
    {'x1': 1, 'y1': 2, 'x2': 3, 'y2': 4}
    >>> data["x1"]
    1
    >>> data["y2"]
    4
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 746
    Par défaut
    Citation Envoyé par scalpel Voir le message
    Comment fait-on pour ne récupérer qu'une seule des coordonnées d'un widget.
    Doit-on l'extraire du "tulpe" (x1, y1, x2, y2) ?
    Tout à fait.
    Si canvas.bbox(iid) retourne le tuple (x1, y1, x2, y2) et que je n'ai envie que de x1 et x2, on peut les extraire via:
    x1, _, x2, _ = canvas.bbox(iid). Le '_' servant à nommer les valeurs à ignorer.
    Maintenant, si je veux récupérer un item à une position donnée comme par exemple y1 on pourra écrire: canvas.bbox(iid)[1].
    On ne peut utiliser que les interfaces qui existent... sachant que rien n'empêche d'y ajouter sa cuisine par dessus pour récupérer ce qu'on veut plus simplement.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    ...Ce terme péjoratif fait référence à une action compliquée pour obtenir un résultat considéré par ailleurs comme assez simple...
    J'utilise ce therme depuis des années, sans jamais en avoir vérifié la signification exacte, je l'ai probablement rencontré lors d'un échange professionnelle sympathique.
    Mais je constate malheureusement qu'il correspond (pour le moment) parfaitement à ma façon de résoudre les exercices.

    Merci Sve@r pour ce retour très pédagogique sur les dictionnaires.

    Citation Envoyé par wiztricks Voir le message
    ... retourne le tuple (x1, y1, x2, y2) et que je n'ai envie que de x1 et x2, on peut les extraire via:
    x1, _, x2, _ = canvas.bbox(iid). Le '_' servant à nommer les valeurs à ignorer...
    Génial 👌

    Impatient de tester également cette façon de faire.

Discussions similaires

  1. [Tkinter] widget Text
    Par t_om84 dans le forum Tkinter
    Réponses: 8
    Dernier message: 17/06/2005, 09h30
  2. Ecran opengl avec coordonnés en pixels
    Par djar dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/02/2005, 21h35
  3. coordonné
    Par hunter dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/12/2004, 23h20
  4. [SWT]Eclipse Java : swt.widgets.Table
    Par watson dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 01/10/2003, 09h07
  5. syntaxe coordonné souris
    Par gaut dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 19h28

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