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;