Меню tkinter add_command не работает должным образомPython

Программы на Python
Ответить
Anonymous
 Меню tkinter add_command не работает должным образом

Сообщение Anonymous »

Я пишу эту программу для отображения данных в виде таблиц с использованием меток и сеток и добавил меню к каждому заголовку для выполнения операций над ними
но функция, которую я пытаюсь использовать для добавления к ним не запущена
программа, демонстрирующая проблему, приведена ниже:

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

from tkinter import *
from functools import partial
root=Tk()
root.geometry('300x300')
data=[(1,'data 1'),(2,'data 2'),(3,'data 3')]
frame1=Frame(root)
frame1.pack()

def menu_popup(event,m):
reset(m)
m.tk_popup(event.x_root, event.y_root)
m.bind('',reset(m))
def reset(m):
m.delete(0,END)
#trying with lambda method
m.add_command(label='task 1',command=lambda _:func2())
#trying partial from functools
m.add_command(label='task 2',command=partial(func1))

def func1():
print('function 1')
def func2():
print('function 2')

nr=1
Label(frame1,text='Sno',relief='solid').grid(row=0,column=0)
Label(frame1,text='Heading',relief='solid').grid(row=0,column=1)
for i in data:
n1=Label(frame1,text=i[0],relief='solid')
n1.grid(padx=1,pady=1,row=nr,column=0,sticky='news')
n2=Label(frame1,text=i[1],relief='solid')
n2.grid(padx=1,pady=1,row=nr,column=1,sticky='news')
rem_mb=Menu(n2,tearoff=0)
n2.bind('',lambda e,m=rem_mb:menu_popup(e,m))
nr+=1
root.mainloop()
как видите, я пробовал использовать лямбда-метод и даже пробовал частичный метод из functools
Я делаю что-то не так с этим кодом?< /п>

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-intended
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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