我希望设置一个按钮,在按下按钮时加载功能“NewItem”。当我尝试编译时,我收到以下消息:
./test.d:20: Error: function gtk.Button.Button.addOnClicked (void delegate(Button) dlg,
GConnectFlags connectFlags = cast(GConnectFlags)0) is not callable using argument types
(void function())
./test.d:20: Error: cannot implicitly convert expression (& NewItem) of type void
function() to void delegate(Button)
在 C 下(我正在重写 D 中的 C 程序),我只会使用 g_signal_connect(NewItem_button, "clicked", G_CALLBACK(NewItem), NULL);,但我相信我会使用 NewItem_button.addOnClicked(&NewItem); 在 D。
我的代码是:
void NewItem()
{
//Create a new window to add new items.
}
Grid config_menu()
{
Button tax_button=new Button("Set Tax Rate");
Button NewItem_button=new Button("New Menu Item");
NewItem_button.addOnClicked(&NewItem);
Grid admin_grid=new Grid();
admin_grid.setColumnSpacing(6);
admin_grid.setRowSpacing(3);
admin_grid.attach(tax_button, 0,0,1,1);
admin_grid.attach(NewItem_button, 1,0,1,1);
return(admin_grid);
}