Можно ли отправить виджет tkinter в качестве параметра функции? - PullRequest
0 голосов
/ 13 июля 2020

Можно ли отправлять виджеты в качестве параметра какой-либо функции? Так что:

l=Listbox(root,selectmode=MULTIPLE)

def SelectLB(lb):
    for i in range(lb["menu"].index("end")):
        l.select_set(i)

MyButton1=Button(root,text="MB1",command= lambda: SelectLB(l))

Спасибо.

1 Ответ

2 голосов
/ 13 июля 2020

Ответ на ваш вопрос: да, вы можете отправлять что угодно в любом месте Python (без учета травления и многопроцессорности). Кажется, вы спрашиваете, можете ли вы вызвать функцию команды кнопки с предопределенным аргументом. Это также возможно:

MyButton1=Button(root, text="MB1", command=lambda l=l: SelectLB(l))

Здесь вы устанавливаете аргумент по умолчанию l на l в вашей текущей области. Это своего рода закрытие, которое гарантирует, что l будет использоваться каждый раз при передаче кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...