How do you delete a Canvas text object?












0















This is for example a create_text:



self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
font=("calibri", 30), fill="#66FF99", anchor=E)


How could I delete this with a button?










share|improve this question





























    0















    This is for example a create_text:



    self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
    font=("calibri", 30), fill="#66FF99", anchor=E)


    How could I delete this with a button?










    share|improve this question



























      0












      0








      0


      1






      This is for example a create_text:



      self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
      font=("calibri", 30), fill="#66FF99", anchor=E)


      How could I delete this with a button?










      share|improve this question
















      This is for example a create_text:



      self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
      font=("calibri", 30), fill="#66FF99", anchor=E)


      How could I delete this with a button?







      python tkinter tkinter-canvas






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 25 '18 at 10:07









      martineau

      68.9k1091186




      68.9k1091186










      asked Mar 3 '15 at 20:00









      RichardRichard

      2128




      2128
























          1 Answer
          1






          active

          oldest

          votes


















          7














          One way to do it is by using the object ID that all Canvas object constructors return:



          id = self.__canvas.create_text(350, lineVotes,
          text=str(likesPrinted),
          font=("calibri", 30), fill="#66FF99", anchor=E)


          Then afterwards you can use the Canvas object's delete() method list like this:



          self.__canvas.delete(id)


          Another way is to attach a tag to the Canvas object, and use that:



          self.__canvas.create_text(350, lineVotes,
          text=str(likesPrinted),
          font=("calibri", 30), fill="#66FF99", anchor=E,
          tag="some_tag")


          And then pass the tag to the delete() method instead of the object ID:



          self.__canvas.delete("some_tag")


          The name of a tag can be any string that does not contain white space or periods.



          Tags are more powerful because you can give the same one to multiple objects and then act on them as a group. Conversely, an object can have more than one tag attached to it by specifying a tuple of them: i.e. tag=("1234", "@special", "posn:13,42") in the constructor call.



          To make this happen when a Button is clicked, you would need to also define a function or method that makes a call to one of the above Canvas methods when it's called. Then, when creating the button widget, specify its name via the command= configuration option.



          For example (within a class definiton):



          def create_widgets(self):
          self.text_id = self.__canvas.create_text(
          350, lineVotes, text=str(likesPrinted),
          font=("calibri", 30), fill="#66FF99", anchor=E)
          self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
          self.delete_btn.pack()

          def delete_text(self):
          """ Delete the canvas text object. """
          if self.text_id:
          self.__canvas.delete(self.text_id)
          self.text_id = None # To avoid multiple deletions.





          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f28840882%2fhow-do-you-delete-a-canvas-text-object%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            7














            One way to do it is by using the object ID that all Canvas object constructors return:



            id = self.__canvas.create_text(350, lineVotes,
            text=str(likesPrinted),
            font=("calibri", 30), fill="#66FF99", anchor=E)


            Then afterwards you can use the Canvas object's delete() method list like this:



            self.__canvas.delete(id)


            Another way is to attach a tag to the Canvas object, and use that:



            self.__canvas.create_text(350, lineVotes,
            text=str(likesPrinted),
            font=("calibri", 30), fill="#66FF99", anchor=E,
            tag="some_tag")


            And then pass the tag to the delete() method instead of the object ID:



            self.__canvas.delete("some_tag")


            The name of a tag can be any string that does not contain white space or periods.



            Tags are more powerful because you can give the same one to multiple objects and then act on them as a group. Conversely, an object can have more than one tag attached to it by specifying a tuple of them: i.e. tag=("1234", "@special", "posn:13,42") in the constructor call.



            To make this happen when a Button is clicked, you would need to also define a function or method that makes a call to one of the above Canvas methods when it's called. Then, when creating the button widget, specify its name via the command= configuration option.



            For example (within a class definiton):



            def create_widgets(self):
            self.text_id = self.__canvas.create_text(
            350, lineVotes, text=str(likesPrinted),
            font=("calibri", 30), fill="#66FF99", anchor=E)
            self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
            self.delete_btn.pack()

            def delete_text(self):
            """ Delete the canvas text object. """
            if self.text_id:
            self.__canvas.delete(self.text_id)
            self.text_id = None # To avoid multiple deletions.





            share|improve this answer






























              7














              One way to do it is by using the object ID that all Canvas object constructors return:



              id = self.__canvas.create_text(350, lineVotes,
              text=str(likesPrinted),
              font=("calibri", 30), fill="#66FF99", anchor=E)


              Then afterwards you can use the Canvas object's delete() method list like this:



              self.__canvas.delete(id)


              Another way is to attach a tag to the Canvas object, and use that:



              self.__canvas.create_text(350, lineVotes,
              text=str(likesPrinted),
              font=("calibri", 30), fill="#66FF99", anchor=E,
              tag="some_tag")


              And then pass the tag to the delete() method instead of the object ID:



              self.__canvas.delete("some_tag")


              The name of a tag can be any string that does not contain white space or periods.



              Tags are more powerful because you can give the same one to multiple objects and then act on them as a group. Conversely, an object can have more than one tag attached to it by specifying a tuple of them: i.e. tag=("1234", "@special", "posn:13,42") in the constructor call.



              To make this happen when a Button is clicked, you would need to also define a function or method that makes a call to one of the above Canvas methods when it's called. Then, when creating the button widget, specify its name via the command= configuration option.



              For example (within a class definiton):



              def create_widgets(self):
              self.text_id = self.__canvas.create_text(
              350, lineVotes, text=str(likesPrinted),
              font=("calibri", 30), fill="#66FF99", anchor=E)
              self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
              self.delete_btn.pack()

              def delete_text(self):
              """ Delete the canvas text object. """
              if self.text_id:
              self.__canvas.delete(self.text_id)
              self.text_id = None # To avoid multiple deletions.





              share|improve this answer




























                7












                7








                7







                One way to do it is by using the object ID that all Canvas object constructors return:



                id = self.__canvas.create_text(350, lineVotes,
                text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E)


                Then afterwards you can use the Canvas object's delete() method list like this:



                self.__canvas.delete(id)


                Another way is to attach a tag to the Canvas object, and use that:



                self.__canvas.create_text(350, lineVotes,
                text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E,
                tag="some_tag")


                And then pass the tag to the delete() method instead of the object ID:



                self.__canvas.delete("some_tag")


                The name of a tag can be any string that does not contain white space or periods.



                Tags are more powerful because you can give the same one to multiple objects and then act on them as a group. Conversely, an object can have more than one tag attached to it by specifying a tuple of them: i.e. tag=("1234", "@special", "posn:13,42") in the constructor call.



                To make this happen when a Button is clicked, you would need to also define a function or method that makes a call to one of the above Canvas methods when it's called. Then, when creating the button widget, specify its name via the command= configuration option.



                For example (within a class definiton):



                def create_widgets(self):
                self.text_id = self.__canvas.create_text(
                350, lineVotes, text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E)
                self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
                self.delete_btn.pack()

                def delete_text(self):
                """ Delete the canvas text object. """
                if self.text_id:
                self.__canvas.delete(self.text_id)
                self.text_id = None # To avoid multiple deletions.





                share|improve this answer















                One way to do it is by using the object ID that all Canvas object constructors return:



                id = self.__canvas.create_text(350, lineVotes,
                text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E)


                Then afterwards you can use the Canvas object's delete() method list like this:



                self.__canvas.delete(id)


                Another way is to attach a tag to the Canvas object, and use that:



                self.__canvas.create_text(350, lineVotes,
                text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E,
                tag="some_tag")


                And then pass the tag to the delete() method instead of the object ID:



                self.__canvas.delete("some_tag")


                The name of a tag can be any string that does not contain white space or periods.



                Tags are more powerful because you can give the same one to multiple objects and then act on them as a group. Conversely, an object can have more than one tag attached to it by specifying a tuple of them: i.e. tag=("1234", "@special", "posn:13,42") in the constructor call.



                To make this happen when a Button is clicked, you would need to also define a function or method that makes a call to one of the above Canvas methods when it's called. Then, when creating the button widget, specify its name via the command= configuration option.



                For example (within a class definiton):



                def create_widgets(self):
                self.text_id = self.__canvas.create_text(
                350, lineVotes, text=str(likesPrinted),
                font=("calibri", 30), fill="#66FF99", anchor=E)
                self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
                self.delete_btn.pack()

                def delete_text(self):
                """ Delete the canvas text object. """
                if self.text_id:
                self.__canvas.delete(self.text_id)
                self.text_id = None # To avoid multiple deletions.






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 25 '18 at 10:52

























                answered Mar 3 '15 at 21:16









                martineaumartineau

                68.9k1091186




                68.9k1091186
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f28840882%2fhow-do-you-delete-a-canvas-text-object%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Costa Masnaga

                    Fotorealismo

                    Sidney Franklin