Как закрыть окно, как будто используя X внизу поверх окна? связанное уничтожение должно быть вызвано

У меня есть два GtkWindow, когда нажимается кнопка, окно1 должно освободить весь объект внутри него и закрыться, но вызывает связанную функцию с событием destroy. gtk_main_quit() нельзя использовать, он не вызывает ассоциированную функцию с событием destroy. Я пробовал gtk_widget_destroy(), но получаю сообщение об ошибке (во время выполнения) от gtk:

Gtk-CRITICAL **: gtk_widget_destroy: утверждение `GTK_IS_WIDGET (виджет)' не удалось

Погуглив, я обнаружил, что gtk_signal_emit_by_name() выглядит действительно то, что мне нужно, но не доступен на GTK3+, который я использую.


person Jack    schedule 20.10.2012    source источник
comment
gtk_signal_emit_by_name устарел, вместо этого используйте g_signal_emit_by_name   -  person David Ranieri    schedule 20.10.2012
comment
Большое спасибо. Как получить instance?   -  person Jack    schedule 20.10.2012
comment
Я не могу это проверить, но вы можете попробовать g_signal_emit_by_name(G_OBJECT(window),destroy);   -  person David Ranieri    schedule 20.10.2012
comment
опубликуйте это как ответ, потому что я могу принять :)   -  person Jack    schedule 21.10.2012


Ответы (1)


Попробуйте g_signal_emit_by_name(G_OBJECT(window),"destroy");

Оно работает?

person David Ranieri    schedule 20.10.2012
comment
Работает отлично. Большое спасибо. - person Jack; 21.10.2012