How do you delete a Canvas text object?
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
add a comment |
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
add a comment |
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
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
python tkinter tkinter-canvas
edited Nov 25 '18 at 10:07
martineau
68.9k1091186
68.9k1091186
asked Mar 3 '15 at 20:00
RichardRichard
2128
2128
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
edited Nov 25 '18 at 10:52
answered Mar 3 '15 at 21:16
martineaumartineau
68.9k1091186
68.9k1091186
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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