首页 > 解决方案 > 在 Tkinter 菜单小部件中获取条目列表(或字典或元组)

问题描述

我的环境是 Python 2.7,在 Windows 10 上运行。

我正在编写一个 Tkinter 应用程序,该应用程序将包含一个“最近的文件”菜单,以方便用户使用。要创建该菜单,我不仅需要能够动态添加、删除和重新排序菜单条目,还需要识别存在多少条目以及这些条目是什么。 我希望它支持将文件列表“限制”为(例如)五个最新文件的逻辑,当新文件添加到列表中时删除旧文件。它还将支持“清除历史记录”的能力,删除所有现有条目。

为单个已知项目添加、删除和重新排序菜单内容是轻而易举的事;、add_command()和方法将涵盖这些用例delete()insert_command()但是我检查了几个在线参考资料,我找不到可以告诉我菜单当前内容的方法或属性,甚至找不到告诉我菜单当前包含多少条目的方法或属性。

这样的属性/方法是否存在?或者我必须应用大锤方法,例如重复执行entrycget()方法 index-by-index 直到遇到异常?

标签: python-2.7tkintertkinter-menu

解决方案


您可以使用index带有参数的方法"end"来获取最后一项的索引。

last_item = the_menu.index('end')

然后,您可以使用它来迭代菜单中的所有项目。


推荐阅读