Partage
  • Partager sur Facebook
  • Partager sur Twitter

Turtle et Tkinter fusionnés ?

Sujet résolu
    23 février 2012 à 14:31:27

    Bonjour,
    Je dois programmer un Snake en Python. J'aimerais utiliser Tkinter pour créer une interface/fenêtre, et Turtle pour programmer le jeu en lui-même. Est-il possible de fusionner l'interface Tkinter avec Turtle ? Et si oui, comment ? Car pour l'instant, chaque module a sa propre fenêtre.
    • Partager sur Facebook
    • Partager sur Twitter
      23 février 2012 à 15:11:26

      Hum, Turtle, je ne pense pas que ce soit très adapté, mais un snake, tu peux faire ca avec Pygame, qui est bien plus facile et parfait pour ton projet.
      En plus, tu peux gérer les fenêtres directement avec pygame.

      Cordialement, Bossodo
      • Partager sur Facebook
      • Partager sur Twitter
        23 février 2012 à 15:15:22

        Merci pour ta réponse. J'ai juste oubliée de préciser que l'on ne doit pas utiliser les classes et Pygame. Et je suis obligée d'utiliser Turtle.
        • Partager sur Facebook
        • Partager sur Twitter
          23 février 2012 à 15:43:28

          Mais, as tu forcement besoin d'utiliser Turtle ET Tkinter ? Si oui je ne sais pas comment faire, mais juste avec turtle je pense que ce sera déja mieux, et plus simple.
          • Partager sur Facebook
          • Partager sur Twitter
            23 février 2012 à 17:53:58

            Non, je ne suis pas obligée mais peut être faire une interface graphique avec turtle ? C'est à dire un menu, avec des boutons cliquable.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              23 février 2012 à 19:53:43

              Citation : Snake81

              Non, je ne suis pas obligée mais peut être faire une interface graphique avec turtle ? C'est à dire un menu, avec des boutons cliquable.



              En réalité, si, tu es forcé d'utiliser tkinter puisque turtle fonctionne déjà avec !

              Maintenant, je ne connais pas trop turtle mais tu dois surement pouvoir récupérer le widget maitre (root) du canvas de turtle. Je cherche ça et j'édite.

              [édit]
              J'ai pas trop cherché non-plus, alors il y surement plus simple ou plus propre :
              >>> import tkinter, turtle
              >>> # Récupérer le toplevel (la fenêtre) du canvas de turtle :
              >>> master = turtle.getcanvas().master
              >>> # Ajouter un bouton à la fenêtre :
              >>> button = tkinter.Button(master, text="Supprimer ce bouton")
              >>> button["command"] = button.destroy # commande qui supprime le bouton
              >>> button.pack()
              >>> # Activer le gestionnaire d'évènements :
              >>> turtle.mainloop()
              
              • Partager sur Facebook
              • Partager sur Twitter
                24 février 2012 à 11:49:43

                Merci beaucoup pour ta réponse PsycoPy. Cependant je n'est pas compris pourquoi ajouter et supprimer celui ci ?
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  24 février 2012 à 19:33:33

                  Ce n'était que pour l'exemple, ce qui est important c'est la manière dont on récupère le widget principal (toplevel) qui contient le canvas de turtle :
                  toplevel = turtle.getcanvas().master

                  Une fois que tu as ce widget (qui hérite de tkinter.Tk) tu peux faire tout ce que tu aurais fait avec tkinter (ajouter des boutons, des champs de texte, etc...)

                  PS: Ne pas oublier d'activer le gestionnaire d'évènements, sinon il te sera impossible d'utiliser cette fenêtre sous Windows.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 février 2012 à 20:18:17

                    D'accord, merci cela m'a beaucoup aidée. Cependant, je ne connais pas trop et je ne sais pas ce qu'est le gestionnaire d'évènements ... Et j'ai lu des documentations concernant Tkinter, j'aurais aimée savoir quelle est la différence entre "master" et "racine" ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      24 février 2012 à 20:37:49

                      Je ne vais pas me lancer dans un cour sur tkinter, mais en gros le master d'un widget c'est son widget parent (parent/enfant c'est la même chose que maitre/esclave). Ici, le widget parent du canvas de turtle est en réalité le widget racine (root) que l'on nomme aussi le toplevel.

                      Le gestionnaire d'évènements de tkinter (donc aussi pour turtle) peut être comparé -- rapidement -- à une boucle principale (d'où le nom de la fonction mainloop()).

                      Voilà pour ces explications carrément abrégées. Si tu veux en savoir plus, je te conseil de te trouver un bon tutoriel sur tkinter.

                      Par exemple, pour commencer: http://www.ferg.org/thinking_in_tkinte [...] _tkinter.html
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Turtle et Tkinter fusionnés ?

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown