1
我想了解Vala代表与Gtk3。 我测试了回调和lambda没有问题。 我想测试一个代表回调,在这里我的代码:如何在GTK3按钮回调中使用VALA代表?
using Gtk;
delegate void typeDelegate(Button button);
int main (string[] args) {
Gtk.init (ref args);
typeDelegate cb = cbLabelf;
var window = new Window();
window.title = "First GTK+ Program";
window.border_width = 10;
window.window_position = WindowPosition.CENTER;
window.set_default_size (350, 70);
window.destroy.connect (Gtk.main_quit);
var button = new Button.with_label ("Click me!");
//button.clicked.connect (cb);
//button.clicked+= cb;
button.clicked.connect+=cb;
window.add (button);
window.show_all();
Gtk.main();
return 0;
}
void cbLabelf(Button button)
{
button.label = "tank yu";
}
我也红了生成的C代码(当我使用拉姆达)了解。 这里编译错误:
GTKsampleDelegate.vala:20.5-20.30:错误:算术操作不支持类型Gtk.Button.clicked.connect' and
typeDelegate' button.clicked.connect + = cb;