Как изменить изображение, отображаемое в Gtk.EventBox?
Я пытаюсь реализовать кликабельное изображение с GTK и Vala. Из того, что я прочитал, лучший способ сделать это с помощью EventBox. Однако одно из моих требований - изменить изображение, отображаемое в EventBox. Я попытался сделать это следующим образом, но, хотя первое изображение исчезает при нажатии, второе никогда не появляется. Почему это? Что мне здесь не хватает?
using Gtk;
class Window : Gtk.Window {
private EventBox evbox = new EventBox ();
private Image img_a = new Image ();
private Image img_b = new Image ();
public Window () {
this.destroy.connect (Gtk.main_quit);
img_a.set_from_file ("a.png");
img_b.set_from_file ("b.png");
evbox.button_press_event.connect ( () => { swap_img (); return true; } );
evbox.add (img_a);
this.add (evbox);
}
public void swap_img () {
evbox.remove (img_a);
evbox.add (img_b);
}
public static int main (string[] args) {
Gtk.init (ref args);
var window = new Window ();
window.show_all ();
Gtk.main ();
return 0;
}
}