lmno
lmno

Reputation: 1044

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?

Upvotes: 33

Views: 131493

Answers (2)

Bryan Oakley
Bryan Oakley

Reputation: 386352

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"].

Upvotes: 82

Yas
Yas

Reputation: 5491

label = Label(text = 'Hello, World!')
print(label['text']) # output is: Hello, World!

Upvotes: 18

Related Questions