tkinter TreeView: отключить выделение выделения - PullRequest
0 голосов
/ 10 мая 2018

У меня есть tkinter TreeView и я использовал теги, чтобы пометить несколько выбранных элементов, как показано ниже желтым цветом. К сожалению, последний нажатый элемент всегда будет отображаться синим цветом независимо от тега. Как запретить TreeView раскрашивать последний нажатый элемент?

Вот фрагмент кода, который я использую для выбора элементов:

def on_click(self, event):
    """Set tag for selected datasets."""

    # Remove 'plotted' tag if existent
    if 'plotted' in self.tree.item(self.tree.selection())['tags']:
        # FIXME: Only remove tag 'plotted'
        self.tree.item(self.tree.selection(), tags=())

    # Select only items that have no children
    elif not self.tree.get_children(self.tree.selection()):
        self.tree.item(self.tree.selection(), tags='plotted')
    self.tree.column('#0', anchor=tk.E)

А вот пример того, как это может выглядеть. Обратите внимание, что вы не можете сказать, если DNTP_iDL _... должен быть белым (b / c он был желтым, и я щелкнул по нему, чтобы деактивировать его):

All entries can be selected and deselected (yellow) with the code above, but the last clicked item stays blue

1 Ответ

0 голосов
/ 14 мая 2018

Оказывается, я ошибся с использованием тегов для выбора нескольких элементов.

Просто используйте встроенный выбор (с помощью shift- или cmd-select), а затем mytree.selection(), чтобы получить списоквсех выбранных предметов.

...