Проблема добавления всплывающего меню во вновь созданную строку в Tkinter Treeview - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть древовидная структура в моем проекте Python 3.7 / Tkinter.Когда программа запущена, мне может понадобиться добавить новый элемент на основе пользовательского ввода.Это отлично работает.Там, где у меня проблема, я пытаюсь добавить всплывающее меню во вновь созданную строку.Вот фрагмент кода:

parent_id = self.tree.insert('', 'end', user_input, text='New Entry', values='')
item = self.tree.item(parent_id)
row = self.tree.selection_set(item)
popup_menu = tkinter.Menu(self.master, tearoff=false)
popup_menu.selection = self.tree.selection_set(row)
popup_menu.add_command(command=self.myfunction, label='Do Something'

Что происходит, когда я запускаю, я получаю сообщение об ошибке в 3-й строке: "проблема меню Item {'text': 'New entry', 'image':' ',' values ​​':' ',' open ': 0,' tags ':' '} не найден

Я пробовал несколько разных способов сделать это, но ясбился с толку о том, почему он говорит, что не может найти только что вставленную строку. Как я могу успешно выбрать вновь вставленную строку (в отличие от того, чтобы узнать о выбранной строке)? Я протестировал с self.tree.exists (parent_id)и он вставлен. Кроме того, я могу визуально увидеть строку в дереве.

...