ttk.Treeview – Deselect rows

We can deselect the selected row in a treeview widget.

img

1
2
3
4
5
6
7
8
# Get the selected items
selected_item_iids = treeview_food.selection()

# Make sure a row is selected
if selected_item_iids:

    # Deselect a single row item
    treeview_food.selection_remove(selected_item_iids[0])

We can also deselect multiple rows, including sub-rows.

img

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def deselect_all(self):
    # Iterate over all root-level items.
    for item in self.treeview_food.get_children():
        deselect_children(item)

def deselect_children(self, item):
    # Deselect the current item.
    self.treeview_food.selection_remove(item)

    # Deselect the children of the current item, if any.
    item_children = self.treeview_food.get_children(item)
    if item_children:
        self.treeview_food.selection_remove(item_children)

The deselect_all() method above would clear all the rows.