Question

Dans Python, je pourrais juste faire builder.connect_signals(self). Il ne semble pas que cette méthode existe en C #, et après avoir regardé La documentation GTKBuilder, il semble que Python soit l'exception, plutôt que la règle. Comment pourrais-je accomplir la même chose en C #?

Était-ce utile?

La solution

À l'heure actuelle, GTK.Builder n'est pas entièrement implémenté dans la version actuelle de GTK # (2.12). Cette fil de discussion explique la situation actuelle. Donc, une fois GTK # 2.14 sorti, vous pouvez simplement faire:

builder.Autoconnect (this);

En attendant, vous pouvez utiliser Glade.xml, puis convertissez votre code (et les fichiers Glade) comme décrit ici: http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html

Autres conseils

Vous pouvez connecter vos signaux en utilisant la méthode Autoconnect, mais la méthode qui représente un signal en C # doit être en forme:

static void customMethod(object sender, EventArgs args);

Ainsi, chaque champ de classe que vous utilisez dans une telle méthode doit être déclaré comme static. Il vous prive de créer une autre instance de votre classe.

Il existe une autre façon de connecter les signaux:

Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
    Application.Quit();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top