Получение списка (или dict, или кортежа) записей в виджете меню Tkinter
Моя среда Python 2.7, работает на Windows 10.
Я пишу приложение Tkinter, которое будет включать меню "последние файлы" для удобства пользователя. Чтобы создать это меню, мне нужна не только возможность динамически добавлять, удалять и переупорядочивать пункты меню, но и определять, сколько записей присутствует и что это за записи. Я хочу, чтобы это поддерживало логику, которая будет "ограничивать" список файлов, скажем, пятью самыми последними файлами, удаляя старые по мере добавления новых файлов в список. Также будет поддерживаться возможность "очистить историю", удалив все существующие записи.
Добавление, удаление и переупорядочение содержимого меню для одного известного элемента - это нобрейнер; add_command()
, delete()
, а также insert_command()
методы будут охватывать эти варианты использования. Но я проверил несколько онлайн-ссылок и не могу найти метод или атрибут, который скажет мне текущее содержимое меню, или даже один, чтобы сказать мне, сколько записей в меню в настоящее время содержится.
Существуют ли такие атрибуты / методы? Или я должен применить кувалду, как многократное выполнение entrycget()
метод индекс за индексом, пока не встретится исключение?
1 ответ
Вы можете использовать index
метод с параметром "end"
чтобы получить индекс последнего элемента.
last_item = the_menu.index('end')
Затем вы можете использовать это для перебора всех элементов меню.