Пожалуйста, примите во внимание этот код Python для простого окна GTK:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
def on_destroy(widget):
print("Destroying {}".format(widget))
def on_click(button, scroll):
scroll.destroy()
scroll = Gtk.ScrolledWindow()
scroll.connect("destroy", on_destroy)
button = Gtk.Button.new_with_label("Self-destruct")
scroll.add(button)
button.connect("destroy", on_destroy)
button.connect("clicked", on_click, scroll)
window = Gtk.Window()
window.add(scroll)
window.connect("destroy", Gtk.main_quit)
window.set_size_request(200, 75)
window.show_all()
Gtk.main()
При нажатии кнопки я ожидаю получить две строки вывода, сообщающие, что ScrolledWindow и кнопка были уничтожены.На самом деле я получаю только одну строку, сообщающую о ScrolledWindow, сигнал уничтожения никогда не достигает кнопки.Если я заменю ScrolledWindow на обычный Box, сигнал уничтожения дойдет до кнопки.Почему это?