Partage
  • Partager sur Facebook
  • Partager sur Twitter

"Retour en arrière" sur Tkinter

    16 décembre 2014 à 9:03:09

    Bonjour à tous,

     Je suis en cours d'ISN, et nous travaillons avec le module Tkinter sur un canvas où un bouton permet de tracer une ligne, un autre permet de changer la couleur (de façon aléatoire) pour la ligne suivante, un pour quitter.

    Je souhaiterai ajouter un bouton "retour en arrière" afin de supprimer la dernière ligne tracée (voire un autre bouton de remise à zéro pour tout effacer...) mais je ne trouve pas quelle fonction peut effectuer cette tâche...

    Si vous avez des éléments de réponse, je vous en serai reconnaissant.

    Merci bien,

    Hugo.
    • Partager sur Facebook
    • Partager sur Twitter
      16 décembre 2014 à 10:13:09

      bonjour

      can = Canevas(root, ....

      ident = can.create_line(...

      can.delete(ident)

      et pour tout effacer

      can.delete(ALL)

      • Partager sur Facebook
      • Partager sur Twitter
        16 décembre 2014 à 18:13:36

        Salut,

        Ce que tu peux faire c'est faire une pile d'annulation, c'est-à-dire quand tu fais une action tu mets son inverse dans la pile (il fait froid, l'inverses c'est il fait chaud) puis tu exécutes l'action. 

        Par example avec Tkinter :

        Tu dessine à l'écran. => Ton logiciel met l'inverse dans la pile, donc soit tu enlèves tout ou tu enlèves juste le ce que tu as dessiné.

        Tu reviens en arrière. => Ton logiciel exécute son inverse, tu dessine du blanc ou tu efface ton tableau.

        L'avantage de cette technique, c'est qu'elle marche avec n'importe quoi. Et en plus tu peux la faire en POO.

        PS : Un pile est égale à un tableau.

        • Partager sur Facebook
        • Partager sur Twitter

        "Retour en arrière" sur Tkinter

        × 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