Search code examples
textpython-3.xtkinter

Python: how to add text inside a canvas?


I have tried many times to add text to my canvas but it only adds it with a click of a button or on the outside of my canvas. Or it pops up in a separate box. Using the code below-

def text():
    canvas.create_text(100,10,fill="darkblue",font="Times 20 italic bold",text="Click the bubbles that are multiples of two.")
    canvas.update

It never worked. So my question is how do I add text in my canvas to start of my game?


Solution

  • For one, the first snippet of code doesn't work because you don't have a variable named canvas. You have one called self.canvas, however. And when I use self.canvas in the first bit of code and add it to the working program, the text shows up just fine.

    Also, in that first bit of code you do canvas.update. That has absolutely zero effect because you don't have the trailing parenthesis. If you fix that it will work, but it's really useless. The text will show up as soon as the event loop is entered.

    All you need to do is add one line right after you create the canvas:

    self.canvas = Canvas(root, width=800, height=650, bg = '#afeeee')
    self.canvas.create_text(100,10,fill="darkblue",font="Times 20 italic bold",
                            text="Click the bubbles that are multiples of two.")