Как мне соединить полярные сигналы, используя GtkBuilder в C #?

2

В python я мог бы просто сделать builder.connect_signals(self). Это не похоже, существует этот метод в С#, и посмотрев на GtkBuilder документация, это выглядит как питон скорее исключение, чем правило. Как выполнить то же самое в С#?

Теги:
gtk
glade
gtk#

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

  • 0
    Спасибо, это приятно знать. Любое слово о том, когда выйдет 2.14?
  • 1
    Хм, это звучит так, как будто они пропускают 2.14+ в пользу 3.x: mono-project.com/GtkSharpPlan#Release_plan
Показать ещё 1 комментарий
0

Вы можете подключить свои сигналы с помощью метода Autoconnect, но метод, представляющий сигнал в С#, должен быть в форме:

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();
}
  • 1
    Добро пожаловать в StackOverflow и спасибо за ваше участие. Ответы, содержащие только код, здесь не приветствуются, поскольку они не представляют большой ценности для дальнейших посредников, поэтому не могли бы вы объяснить, почему и как это работает?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню