Можно ли выбрать несколько строк в виджете в виде дерева?

1

Можно ли выбрать несколько строк в виджете в виде дерева? Далее, как вы получите входные/выбранные строки.

Вот дерево, которое я создал, однако я не могу выбрать обе строки.

Изображение 174551

Если это невозможно, это виджет в tkinter или ttk, который позволяет это?

Теги:
tkinter
treeview
ttk

1 ответ

2
Лучший ответ

Да, можно получить кортеж выбранных элементов, используя метод selection(). Получив кортеж, вы можете получить доступ к каждому элементу, используя метод item(). Вот пример.

PS В коде выберите несколько элементов, нажав Ctrl и щелкнув по строкам, а затем нажмите Enter.

import tkinter as tk
import tkinter.ttk

def select():
    curItems = tree.selection()
    tk.Label(root, text="\n".join([str(tree.item(i)['values']) for i in curItems])).pack()

root = tk.Tk()
tree = tkinter.ttk.Treeview(root, height=4)

tree['show'] = 'headings'
tree['columns'] = ('Badge Name', 'Requirement', 'Cost', 'Difficulty')
tree.heading("#1", text='Badge Name', anchor='w')
tree.column("#1", stretch="no")
tree.heading("#2", text='Requirement', anchor='w')
tree.column("#2", stretch="no")
tree.heading("#3", text='Cost', anchor='w')
tree.column("#3", stretch="no")
tree.heading("#4", text='Difficulty', anchor='w')
tree.column("#4", stretch="no")
tree.pack()

tree.insert("", "end", values=["IT Badge", "Track Computer", "$1.50", "2"])
tree.insert("", "end", values=["Selfless Badge", "Track Yourself", "$100.50", "10"])
tree.insert("", "end", values=["Tracking Badge", "Track Animal", "$4.50", "7"])

tree.bind("<Return>", lambda e: select())

root.mainloop()

Изображение 174551

  • 0
    Я не могу выделить несколько строк в древовидной структуре. Информация передается при нажатии Enter и отображается в окне tkinter.
  • 1
    @LyraOrwell Вы можете выбрать несколько строк, нажав Ctrl и затем щелкнув по строкам.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню