Получение списка (или dict, или кортежа) записей в виджете меню Tkinter

Моя среда Python 2.7, работает на Windows 10.

Я пишу приложение Tkinter, которое будет включать меню "последние файлы" для удобства пользователя. Чтобы создать это меню, мне нужна не только возможность динамически добавлять, удалять и переупорядочивать пункты меню, но и определять, сколько записей присутствует и что это за записи. Я хочу, чтобы это поддерживало логику, которая будет "ограничивать" список файлов, скажем, пятью самыми последними файлами, удаляя старые по мере добавления новых файлов в список. Также будет поддерживаться возможность "очистить историю", удалив все существующие записи.

Добавление, удаление и переупорядочение содержимого меню для одного известного элемента - это нобрейнер; add_command(), delete(), а также insert_command() методы будут охватывать эти варианты использования. Но я проверил несколько онлайн-ссылок и не могу найти метод или атрибут, который скажет мне текущее содержимое меню, или даже один, чтобы сказать мне, сколько записей в меню в настоящее время содержится.

Существуют ли такие атрибуты / методы? Или я должен применить кувалду, как многократное выполнение entrycget() метод индекс за индексом, пока не встретится исключение?

1 ответ

Решение

Вы можете использовать index метод с параметром "end" чтобы получить индекс последнего элемента.

last_item = the_menu.index('end')

Затем вы можете использовать это для перебора всех элементов меню.

Другие вопросы по тегам