我是一个经验丰富的Python程序员,但目前需要通过Tkinter实现一个基本的GUI。很明显,Python并没有成为最好的UI/UX平台,我已经完成了这个目标,但是我遇到了一个基本的问题,我似乎无法在web上找到一个简单的解决方案。
def __file_menu(self):
menu = tk.Menu(self, tearoff=False)
menu.add_command(label="New Project...", command=self.__file_new, state=tk.DISABLED)
menu.add_command(label="Open Project...", command=self.__file_open)
recent_list = tk.Menu(menu, tearoff=False)
for index, project in enumerate(self._recent_projects):
name = os.path.basename(project).title()
recent_list.add_command(label=name, command=lambda: self.__open_recent(index))
menu.add_cascade(label="Recent Projects...", menu=recent_list)
这对于显示正确的项目很有帮助,但我无法正确地在lambda函数中传递一个唯一的值,该值标识已选择哪些菜单项,以便我可以在此处使用它:
def __open_recent(self, item):
self.__load_project(self._recent_projects[item])
index
总是相同的,即它的最后一个值。那么,如何从选中的菜单项中获得唯一标识符(名称、索引等)?