Как передавать значение в другую функцию динамический?
Мне нужно передавать текст в другую функцию, но на выходе я получаю только 'c'
import customtkinter as ctk
main_form = ctk.CTk()
main_form.geometry("800x600")
main_form.title("Main")
main_form.resizable(False, False)
tabview = ctk.CTkTabview(master=main_form)
tabview.pack(pady=20, padx=40, fill='both', expand=True)
tabview.add("main")
tabview.set("main")
scrollable_frame = ctk.CTkScrollableFrame(
master=tabview.tab("main"), width=175, height=500)
scrollable_frame.grid(row=0, column=0)
def test_func(name):
x = name.cget("text")
print(x)
test = list(['a', 'b', 'c'])
for i in test:
i = ctk.CTkButton(scrollable_frame,
text=f'{i}', command=lambda: test_func(i))
i.pack(padx=10, pady=6)
main_form.mainloop()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Все атрибуты можно настраивать и обновлять:
.configure(attribute=value, ...)
import customtkinter as ctk
main_form = ctk.CTk()
main_form.geometry("800x600")
main_form.title("Main")
main_form.resizable(False, False)
tabview = ctk.CTkTabview(master=main_form)
tabview.pack(pady=20, padx=40, fill='both', expand=True)
tabview.add("main")
tabview.set("main")
scrollable_frame = ctk.CTkScrollableFrame(
master=tabview.tab("main"), width=175, height=500)
scrollable_frame.grid(row=0, column=0)
def test_func(name):
x = name.cget("text")
print(x)
test = list(['a', 'b', 'c'])
for i in test:
ctk_button = ctk.CTkButton(scrollable_frame, text=f'{i}') # !!!
# -------------------> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv <---- # !!!
ctk_button.configure(command=lambda btn=ctk_button : test_func(btn))
ctk_button.pack(padx=10, pady=6)
main_form.mainloop()
