Обычно вы должны вызывать базовый конструктор следующим образом:
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 и в вашем производном классе.
person
Jens Mühlenhoff
schedule
24.01.2020