获取 Tkinter 菜单小部件中条目的列表(或字典或元组)
Getting a list (or dict, or tuple) of entries in a Tkinter menu widget
我的环境是 Python 2.7,运行 Windows 10。
我正在编写一个 Tkinter 应用程序,它将包含一个 "recent files" 菜单以方便用户使用。要创建该菜单,我不仅需要能够动态地添加、删除和重新排序菜单条目,而且还需要 确定存在多少条目以及这些条目是什么。 我希望它支持将 "cap" 文件列表(例如)五个最新文件的逻辑,并在新文件添加到列表时删除旧文件。它还支持 "clear history" 删除所有现有条目的功能。
为单个已知项目添加、删除和重新排序菜单内容是很容易的事; add_command()
、delete()
和 insert_command()
方法将涵盖这些用例。但是我已经检查了几个在线参考资料,但我找不到可以告诉我 菜单当前内容的方法或属性, 甚至找不到可以告诉我 的方法或属性菜单当前包含多少条目。
这样的attributes/methods存在吗?或者我必须使用大锤方法,比如逐个索引重复执行 entrycget()
方法,直到遇到异常?
您可以使用参数为"end"
的index
方法来获取最后一项的索引。
last_item = the_menu.index('end')
然后您可以使用它来遍历菜单中的所有项目。
我的环境是 Python 2.7,运行 Windows 10。
我正在编写一个 Tkinter 应用程序,它将包含一个 "recent files" 菜单以方便用户使用。要创建该菜单,我不仅需要能够动态地添加、删除和重新排序菜单条目,而且还需要 确定存在多少条目以及这些条目是什么。 我希望它支持将 "cap" 文件列表(例如)五个最新文件的逻辑,并在新文件添加到列表时删除旧文件。它还支持 "clear history" 删除所有现有条目的功能。
为单个已知项目添加、删除和重新排序菜单内容是很容易的事; add_command()
、delete()
和 insert_command()
方法将涵盖这些用例。但是我已经检查了几个在线参考资料,但我找不到可以告诉我 菜单当前内容的方法或属性, 甚至找不到可以告诉我 的方法或属性菜单当前包含多少条目。
这样的attributes/methods存在吗?或者我必须使用大锤方法,比如逐个索引重复执行 entrycget()
方法,直到遇到异常?
您可以使用参数为"end"
的index
方法来获取最后一项的索引。
last_item = the_menu.index('end')
然后您可以使用它来遍历菜单中的所有项目。