Предотвратить потерю выбора Treeview при перетаскивании - PullRequest
3 голосов
/ 29 октября 2010

У меня есть gtk.Treeview настройка в качестве источника перетаскивания:

self.drag_source_set(gtk.gdk.BUTTON1_MASK, targets, gtk.gdk.ACTION_COPY)

и TreeSelection установлено на SELECT_MULTIPLE.

Но каждый раз, когда я пытаюсь перетащить выделение из нескольких строк, курсор переходит к текущей позиции мыши, сбрасывая выделение в текущую строку. Даже если мышь находится над одной из выбранных строк. Это работает только тогда, когда я удерживаю кнопку Shift или Ctrl нажатой.

Что происходит?

Редактировать 1:

Я установил древовидную структуру дерева, чтобы исключить любые ошибки в моем коде, и он делает то же самое.

Редактировать 2:

Я нашел фрагмент кода, который делает то, что я хочу. Это из источников quet libet, называемых MultiDragTreeView.

1 Ответ

1 голос
/ 13 января 2013

Я нашел фрагмент кода, который делает то, что я хочу.Это из исходных текстов, называемых MultiDragTreeView .Цитирование строки документа:

"""TreeView with multirow drag support:
* Selections don't change until button-release-event...
* Unless they're a Shift/Ctrl modification, then they happen immediately
* Drag icons include 3 rows/2 plus a "and more" count"""
...