ttk.treeview.focus() returns the iid of a single line. The treeview box allows you to select multiple lines. How do I get a list of iids for the selected lines?
ttk.treeview.focus() returns the current focus item. That means the item that was last selected. The function you are looking for is ttk.treeview.selection(). This returns a tuple of the selected items.
Use ttk.treeview.selection().
It gives the selected items. See also other Treeview methods with selection prefix such as,
selection_add
selection_remove
selection_toggle
See the example below:
import tkinter as tk
from tkinter import ttk, Tk
def insert(tree, value):
tree.insert('', tk.END, value, text=value)
root = Tk()
tree = ttk.Treeview(root)
insert(tree, '1')
insert(tree, '2')
insert(tree, '3')
tree.pack()
children = tree.get_children()
tree.selection_set(children)
tree.selection_toggle(children[1])
# uncomment line by line to see the change
#tree.selection_toggle(children)
#tree.selection_remove(children[1])
print(tree.selection())
root.mainloop()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With