import Tkinter from Tkinter import ttk root = tk() root.mainloop() label = ttk.Label(root, text = "This text I want to change") label.grid() def select_label_text(): top = Toplevel() top.title("Select Name") def change_name(name): label.cofigure(text=name) top.destroy() label_names = [a,b,c...] #this has undefined strings for i in range(len(label_names)): #here I made a button for each different name ttk.button(top, text = label_names[i], command = lambda: change_name(label_names[i])).grid()
I want to change the label text to the buttonĀ“s name when I press it. there are undefined buttons so I can’t save each one to a variable.
ttk.Button(root, comand = select_label_text()).grid()
Advertisement
Answer
You have many errors. Here is a version of your code, for Python 3, not Python 2, that at least runs. It may not do exactly what you want it to do, but it works, and it’s a better starting point than what you posted. The modified code is as follows:
import tkinter # Tkinter from tkinter import ttk def select_label_text(): top = tkinter.Toplevel() top.title("Select Name") def change_name(name): label.configure(text=name) top.destroy() label_names = ["a", "b", "c..."] #this has undefined strings for i in range(len(label_names)): #here I made a button for each different name ttk.Button(top, text=label_names[i], command=lambda i=i: change_name(label_names[i])).grid() root = tkinter.Tk() label = ttk.Label(root, text = "This text I want to change") label.grid() ttk.Button(root, command=select_label_text).grid() root.mainloop()
You should do a diff comparison between your code and this version to see the changes.