Я оказался в ситуации, когда мне нужно было закрыть окно, которое я создал в подклассе Gtk.Window
. Я подключал событие window.destroy для закрытия окна изначально к Gtk.main_quit
для тестирования, но когда я загрузил модуль в свою основную программу, я не мог сделать это так, конечно, не закрыв основную программу. Когда я писал функцию, я по глупости вызвал метод window.destroy()
, который, по глупости с моей стороны, привел к ошибке максимальной рекурсии. Итак, я решил подключить «событие удаления», а затем вызвать window.destroy()
, который все еще рекурсировал, потому что (как я узнал) событие уничтожения вызывает событие удаления. Итак, я связал событие уничтожения с функцией и попытался вызвать:
window.emit('delete-event')
который работал, но привел к ошибке, требующей другого параметра. Изучая, я узнал, что это должно быть что-то вроде этого из gtk2:
window.emit("delete-event", gtk.gdk.Event(gtk.gdk.DELETE))
Я не могу найти Gdk
под Gtk
, как я могу найти gdk
под gtk
. Мне это не нравится. Я импортировал Gdk, и Gdk.Event
найден, но нет эквивалента gtk.gdk.DELETE variable
. Я сделал:
l = dir(Gdk)
for i in l:
if 'DELETE' in i:
print(i)
и не обнаружил переменной DELETE, определенной в Gdk.
Как мы можем получить доступ к Gdk из Gtk? Если нет, то как нам перевести эти gtk.gdk... вещи, если они не существуют в Gdk?
В конце концов, я просто сделал:
del window
чтобы сделать то, что мне нужно было сделать, но я все еще хотел бы знать, как сделать сигнал излучения выше в Gtk3 для учебных целей.
Спасибо,
Нарни