2

Pythonでは、私はただ行うことができましたbuilder.connect_signals(self). このメソッドは C# には存在しないようです。GtkBuilder のドキュメントを参照すると、ルールではなく python が例外のようです。C# で同じことを達成するにはどうすればよいですか?

4

2 に答える 2

1

現在、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

于 2009-11-07T22:22:54.247 に答える
0

method を使用してシグナルを接続できますが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();
}
于 2014-09-05T11:34:52.003 に答える