LINUX.ORG.RU

[pygtk] connect/disconnect

 


0

0

Есть функция, которая является обработчиком разных сигналов от многих объектов:
def my_func (self,arg):
.....
object1.connect ('signal1',my_func)
object2.connect ('signal1',my_func)
object3.connect ('signal2',my_func)
object4.connect ('signal3',my_func)
и т.п.

При уничтожении класса, в котором содержится функция необходимо отвязать все обработчики.

Вопрос:
Как это сделать скопом, т.е. отвязать сразу все без вызова для каждого disconnect'а?

★★★★★

>Как это сделать скопом, т.е. отвязать сразу все без вызова для каждого disconnect'а?
можно в цикле скорее всего, надо хранить только список объектов

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Спасибо!
Обнаружилась проблема, что даже после дисконнекта всех обработчиков объект все равно не удаляется.
Что делать?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

>Обнаружилась проблема, что даже после дисконнекта всех обработчиков объект все равно не удаляется.

чтоб уничтожить объект не нужно отсоединять сигналы. Нужно всего лишь убрать все ссылки на него в программе. Единственное исключение в pygtk - это gtk.Window, для него pygtk внутрене создает ссылку, поэтому он уничтожиться только после вызова метода .destroy()

chicane
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.