Search code examples
pythontkinterlabel

How to get the Tkinter Label text?


Im making a list of addresses that the user will select from, and the address text will be returned. I need to use Tkinter.Label because the Tkinter.Listbox will not allow for newlines.

The kicker is there is no .get()-like method in the Label class...

I know I can do something like:

v = StringVar()
Label(master, textvariable=v).pack()
v.set("New Text!")
 ...
print v.get()

However, I have a list of 5-20 address' keeping a seperate array of StringVar()'s will be difficult b/c I have no way of identifying the loc of the active label. I would like to just access the activated widget contents.

Is Tkinter.Label the right widget to be using?


Solution

  • To get the value out of a label you can use the cget method, which can be used to get the value of any of the configuration options.

    For example:

    l = tk.Label(text="hello, world")
    ...
    print("the label is", l.cget("text"))
    

    You can also treat the object as a dictionary, using the options as keys. Using the same example you can use l["text"].