У меня есть виджет меню TK, и я хочу удалить команду при нажатии после выполнения каких-либо побочных эффектов.Весь код относится к классу DocumentView
, поэтому self.varnames
self.root= Tk()
self.root.title("Document Screen")
self.root.geometry(str(DocHeight)+"x"+str(DocHeight))
self.mainMenu = Menu(self.root)
self.allMembersMenu = Menu(self.updateMembersMenu)
for member in self.allUsers:
self.allMembersMenu.add_command(label=member,command=lambda i= member:
self.removeUser(i))
. Это команда для каждого пользователя в системе.Удаление пользователя определяется следующим образом:
def removeUser(self,uname):
print("Remove User Function , uname: {}".format(uname))
x=0
mem = self.currentDoc.getMembers()
delmem=""
for i in range(0,len(mem)):
if (mem[i]==uname):
x=i
delmem = mem[i]
break
self.allMembersMenu.delete(x)
self.allUserMenu.destroy
self.currentDoc.removeMember(delmem)
Используя функцию печати, я знаю, что передаются правильные переменные, но в меню не происходит никаких изменений, есть ли какой-то метод Menu.reDraw()
, который мне не хватает?
Если этого не существует, есть ли способ уничтожить это подменю и перерисовать его?