从以下.ui文件中,我得到了信号:
<object class="GtkButton" id="button2">
<property name="label">Button 2</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<signal name="clicked" handler="on_button2_clicked" swapped="no"/>
</object>
信号on_button2_clicked
的名称和以下我用来通过add_callback_symbool
处理事件的代码:
// Create Builder
var build = new Gtk.Builder ();
build.add_from_resource ("/me/rush/Rush/main.ui");
// Create an instance
var window = (Gtk.ApplicationWindow) build.get_object ("window");
// handle event
build.add_callback_symbol ("on_button2_clicked", ()=> {print ("click");});
window.application = app;
window.show_all ();
GUI出现在屏幕上,但是事件on_button2_clicked
的处理不起作用,我试图用build.connect_signals (null)
处理事件,并且使用相同名称的definend函数,但也不起作用
[谷歌搜索时,我找到了一种在模板中使用callbaks的方法,但是我想做的是使用connect.signals
或add_callback_symbol
处理事件我也尝试了示例here,但是它不起作用
[我也将其回复为your question on GNOME's discourse,但我将在此处再次发布答案以提高知名度: