Сделать узел в Tkinter Treeview недоступным для выбора

Я хотел бы знать, как сделать определенные узлы в объекте Treeview недоступными для выбора, т.е. при нажатии на такой узел узел не должен выделяться.

Я работаю над
Python 3.3/2.7
Tkinter


person Saimadhav Heblikar    schedule 14.02.2014    source источник


Ответы (1)


Создайте древовидную структуру с параметром selectmode="none". Это отключает обработку выбора по умолчанию.

Дайте определенным элементам тег, указывающий, что вы хотите, чтобы они были «выбираемыми».

Создайте привязку щелчка мыши к виджету и используйте обработчик событий, чтобы установить выбор самостоятельно.

def on_click(self, event):
    tree = event.widget
    item_name = tree.identify_row(event.y)
    if item_name:
        tags = tree.item(item_name, 'tags')
        if tags and (tags[0] == 'selectable'):
            tree.selection_set(item_name)
person Oblivion    schedule 22.02.2014