Обычно вы бы назвали базовый конструктор следующим образом:
public class MainWindow : Gtk.ApplicationWindow {
public MainWindow (Gtk.Application application) {
base (application);
}
}
Это не работает для классов, которые сами используют параметры конструкции стиля GObject.
Как вы уже выяснили, правильный путь Производный от такого класса:
public class MainWindow : Gtk.ApplicationWindow {
public MainWindow (Gtk.Application application) {
Object (application: application);
}
}
Это не так уж и отличается, за исключением того, что вы должны указать имя каждого свойства и использовать класс Object
(который является GObject в C) вместо указания base
.
PS: В моем ответе на ваш другой вопрос ( Как работает стиль GObject? ) я имел в виду, что вам не нужно используйте конструкцию стиля GObject, когда вы пишете свои собственные классы, из которых могут извлекать другие. Здесь все наоборот: дизайн Gtk.MainWindow заставляет вас использовать конструкцию стиля GObject и в вашем производном классе.