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

Tkinter Python Discussion :

Tracé de segment dans Tkinter


Sujet :

Tkinter Python

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Tracé de segment dans Tkinter
    Bonjour !

    J'aimerai via une interface Tkinter tracer un segment défini selon deux points et en récupérer la liste des pixels appartenant à ce segment.

    Je suis parvenu à réaliser la première étape. J'ai donc crée une interface avec Tkinter contenant le canvas, à l'aide de la souris j'ai récupéré les coordonnes des deux points dans une liste du type [x1,y1,x2,y2].

    Mon problème est de savoir comment tracer le segment et SURTOUT de récupérer la liste des points appartenant à ce segment. C'est très important pour la suite de mon travail !

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 347
    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 347
    Points : 36 870
    Points
    36 870
    Par défaut
    Citation Envoyé par annoying Voir le message
    Mon problème est de savoir comment tracer le segment et SURTOUT de récupérer la liste des points appartenant à ce segment. C'est très important pour la suite de mon travail !
    .create_line devrait vous permettre de...
    Quid de la lecture du tutoriel TkDocs sur les canvas et Tk en général?
    Pour le reste, vous pouvez récupérer les caractéristiques d'à peu près tout les objets qui sont "dans" le canvas et en faire ce que vous voulez.
    *Je* m'inspirerais de programme qui font déjà cela genre sortie SVG.

    - W

  3. #3
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    J'ai une question analogue a la question du début:
    la methode .tag_ranges() du widget Text est censer, d'après la doc de renvoyer une liste de tous les indexes du tag or celle-çi renvoie deux instances Tkinter qio correspondent je suppose a l'index de debut et a l'index de fin du tag.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    from Tkinter import *
    a=Tk()
    b=Text(a)
    c=('test des index')
    b.insert(END, c)
    b.tag_add('tag', 1.0, '1.'+str(len(c)))
    b.tag_ranges('tag')
    (<textindex object at 0x26e87a0>, <textindex object at 0x27d82f0>)
    Alors que faire de ces instances ?
    On peut si l'on les récupères dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    z=b.tag_ranges('tag')
    z.count('e')
    z.index('d')
    Mais c'est tous.
    Alors que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    b.tag_ranges.__doc__
    'Return a list of ranges of text which have tag TAGNAME.'
    Merci pour vos réponses

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 347
    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 347
    Points : 36 870
    Points
    36 870
    Par défaut
    Salut,
    Les index dans le texte sont de la forme <ligne>.<position>.
    Un range est un couple d'index signifiant (début, fin).
    .add_tag('tag', d0, f0)
    .add_tag('tag', d1, f1)
    ...
    va permettre de "colorier" les sections de textes correspondantes avec un 'tag'
    note: si les sections se recouvrent, l'opération effectuera un "merge".

    Si vous êtes dans une logique d'éditeur de texte ou de mise en forme de page html, les tags permettent la mise en place de balises "logiques" qui vous permettre d'appliquer des opérations sur les ranges de texte correspondants.
    Je dis "logiques" car les ranges sont mis à jour lors d'insertion.
    Exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    '''creation de 2 lignes'''
    text.insert(INSERT, 'ligne1\nligne2\n')
    '''on taggue les deux premiers caracteres de chaque ligne'''
    text.tag_add('tag', 1.0, 1.2)
    text.tag_add('tag', 2.0, 2.2)
    '''on les peint en jaune'''
    text.tag_configure('tag', backgroung='yellow')
    '''si on cree une nouvelle ligne en 1.3, les ranges taggués suivent'''
    text.insert(1.3, 'newline\n')
    '''visualiser le texte avec ses tags'''
    text.dump(1.0, END)
    On pourrait donc s'amuser à prendre du HTML pas trop mal construit style:
    <body>
    <h1>titre</h1>
    <b>paragraphe</b>
    </body>
    et jeter le texte dans un text widget avec des tags h1, b correspondants et
    appliquer via text.tag_configure un formattage par défaut.
    - W

Discussions similaires

  1. Text vertical dans Tkinter canvas text
    Par jcgarreau dans le forum Tkinter
    Réponses: 4
    Dernier message: 15/08/2009, 00h29
  2. Erreur de segmentation dans un thread
    Par Littlepea dans le forum wxWidgets
    Réponses: 3
    Dernier message: 27/06/2008, 19h18
  3. [Débutant] Tracé de courbe dans une boucle FOR-END
    Par cozo22 dans le forum MATLAB
    Réponses: 8
    Dernier message: 03/04/2008, 16h42
  4. tracé une ligne dans un picturebox
    Par kakrocq dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 21/05/2007, 13h30
  5. Progress Bar dans Tkinter ou autre module
    Par will97 dans le forum Tkinter
    Réponses: 3
    Dernier message: 16/03/2007, 23h11

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