Как видно из названия, у меня есть gtk.TreeView
, чья модель отсортирована и отфильтрована. Согласно документации : «Перетаскивание строк с помощью перетаскивания работает только с несортированными хранилищами». Единственная предоставленная информация касается использования внешних источников, которые в данном случае мне не нужны.
Я все равно пытался реализовать его, предоставляя обработчики для сигналов перетаскивания-приема и перетаскивания, но все равно получал следующую ошибку:
GtkWarning: Вы должны переопределить стандартный обработчик drag_data_received в GtkTreeView при использовании моделей, не поддерживающих интерфейс GtkTreeDragDest и включающих перетаскивание. Самый простой способ сделать это - подключиться к drag_data_received и вызвать g_signal_stop_emission_by_name () в вашем обработчике сигналов, чтобы предотвратить запуск обработчика по умолчанию. Посмотрите исходный код обработчика по умолчанию в gtktreeview.c, чтобы понять, что должен делать ваш обработчик. (gtktreeview.c находится в исходном коде GTK.) Если вы используете GTK из языка, отличного от C, может быть более естественный способ переопределить обработчики по умолчанию, например, через деривацию.
Несмотря на это, хотя я еще не реализовал это, похоже, я мог бы заставить его работать, так как он не падает. Тем не менее, это предупреждение, которое я бы предпочел не иметь.
Итак, есть ли в Python эквивалент g_signal_stop_emission_by_name
, или я поступаю неправильно?