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ésolu] heritage et turtle


Sujet :

Python

  1. #1
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut [Résolu] heritage et turtle
    bonjour ,

    J'ai une animation avec turtle , et je veux ensuite l'intégrer dans un widget tk . Comment coder cet héritage ?

    Un bac à sable :

    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
     
    #! /usr/bin/env python
    # -*- coding:Utf8 -*-
     
    from Tkinter import *      # module Tkinter pour Python 2
    from random import randrange
     
     
    class Bac_a_sable(Canvas):
       "Canevas modifié pour prendre en compte quelques actions de la souris"
       def __init__(self, boss, width=1366, height=660, bg="white"):
           # invocation du constructeur de la classe parente :
           Canvas.__init__(self, boss, width=width, height=height, bg=bg)
     
     
    if __name__ == '__main__':      # ---- Programme de test ----
        couleurs =('red','orange','yellow','green','cyan','blue','violet','purple')
        fen =Tk()
        # mise en place du canevas - dessin de 15 ellipses colorés :
        bac =Bac_a_sable(fen, width =1366, height =660, bg ='ivory')
        bac.pack(padx =5, pady =3)
        # Insérer turtle
        #
        #
        # bouton de sortie :
        b_fin = Button(fen, text ='Terminer', bg ='royal blue', fg ='white',
                       font =('Helvetica', 10, 'bold'), command =fen.quit)
        b_fin.pack(pady =2)
        fen.mainloop()
    Turtle :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    import time
    from turtle import *
     
    def anim():
        up()
        p=str(25)
        goto(-100,-50)
        down()
        color('black')
        write(p+" °C ",font=("Arial", 100, "normal")) # on ecrit
        # rectangle 1
        up()
        goto(-150,-50)
        down()
        color('blue')
        width(3)
        l=450;h=150;r=90
        forward(l)
        left(r)
        forward(h)
        left(r)
        forward(l)
        left(r)
        forward(h)
        #rectangle 2
        up()
        goto(-150-20,-50-20)
        down()
        color('blue')
        width(5)
        l=450+40;h=150+40;r=90
        left(r)
        forward(l)
        left(r)
        forward(h)
        left(r)
        forward(l)
        left(r)
        forward(h)
        #sortie dessin
        up()
        goto(-200,-200)
        down()
        color('white')
        left(r)
        #tempo
        time.sleep(5)
        clear()
    Aplus

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Il me semble que la pratique est de donner le canvas comme parent à turtle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    import turtle
     
    trtl = turtle.RawTurtle(canvas)
    ...
    trtl.up()
    trtl.p=str(25)
    ...
    Ou bien de récupérer la fenêtre top-level de TKinter.

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 911
    Points : 7 294
    Points
    7 294
    Par défaut
    Je ne vois pas l'intérêt de turtle alors que canvas fait tout ça très bien seul.

    Cela donne une impression de double emploi...

  4. #4
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Je ne vois pas l'intérêt de turtle alors que canvas fait tout ça très bien seul.
    Turtle dessine en bougeant le spot et canvas place des widgets . Il n'y a peu de
    doc pour passer d'une classe ou librairie python à l'autre .

    L'initiation est facile , et vite limitée . Il y a aussi pygtk avec doc traduite ..

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 911
    Points : 7 294
    Points
    7 294
    Par défaut
    On dessine aussi avec un canvas.

    To draw things in the canvas, use the create methods to add new items.

  6. #6
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Ok - il faut passer par des " plongeoirs intermédiaires " , avant le saut à 30 m


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

Discussions similaires

  1. [Kylix] heritage multiple et interfaces :(
    Par le_barbu dans le forum EDI
    Réponses: 4
    Dernier message: 26/01/2004, 19h30
  2. [Postgres] Pb d'heritage...
    Par anonia dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h34
  3. [HERITAGE] Redondance ou pas redondance ???
    Par cyrillus76 dans le forum Schéma
    Réponses: 1
    Dernier message: 11/06/2003, 09h46
  4. [PostgreSQL] Question vis a vis de l'heritage...
    Par Gandalf dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/05/2003, 16h53

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