Параметр tkinter.Button «команда» установлен неправильно [дубликат]Python

Программы на Python
Anonymous
Параметр tkinter.Button «команда» установлен неправильно [дубликат]

Сообщение Anonymous »

Я использую Tkinter для отображения результатов поиска в базе данных и показываю данные с помощью цикла for, и я устанавливаю параметр команды [для виджета tkinter.Button] с лямбда-функцией, но когда я нажимаю на данные для полного отображения, вместо запуска show func с правильными параметрами, я запускаю show func с последними данными.
Мой код:

Код: Выделить всё

import tkinter
from tkinter import Button, ttk

def show_results(result: dict):
def show(text):
w = tkinter.Tk()
w.geometry('500x450')
result_lb = ttk.Label(master=w, text=text)
result_lb.place(x=5, y=5)
w.mainloop()

win = tkinter.Tk()
win.geometry('500x800')
x = 5
y = 5
for res in result:
r = result[res]
print(r)
cmd = lambda: show(r)
Button(master=win, text=f"    {r}    ", command=cmd).place(x=x, y=y)
y += 25
win.mainloop()

show_results({'0': ['jack', '18', 'newyork'], '1': ['alex', '20', 'texas']})
Также я использую tkinter.ttk.Button, но эта ошибка не решена.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -correctly

Вернуться в «Python»