如何使用C#中的GTKBuilder连接GLADE信号?
-
18-09-2019 - |
题
在Python,我可以做 builder.connect_signals(self)
. 。看来这种方法不存在于C#,然后看完之后 GTKBuilder文档, ,看起来Python是例外,而不是规则。我将如何在C#中完成同一件事?
解决方案
目前,GTK.Builder在当前版本的GTK#(2.12)中尚未完全实现。这个 线 解释当前情况。因此,一旦GTK#2.14发布,您就可以做:
builder.Autoconnect (this);
同时,您可以使用 Glade.xml, ,然后如下所述转换您的代码(和GLADE文件): http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html
其他提示
您可以使用方法连接信号 Autoconnect
, ,但是代表C#信号的方法必须处于形式:
static void customMethod(object sender, EventArgs args);
因此,您在这种方法中使用的每个类领域都必须声明为 static
. 。它抢劫了您创建类的另一个实例。
还有另一种连接信号的方式:
Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
Application.Quit();
}
不隶属于 StackOverflow