问题描述
这里是vala的示例源代码,用于从elementary os网站创建一个简单的GTK应用程序
public class Examples.Application : Gtk.Application {
public Application () {
Object (
application_id: "org.valadoc.examples",flags: ApplicationFlags.FLAGS_NONE
);
}
protected override void activate () {
var application_window = new Gtk.applicationwindow (this);
application_window.show_all ();
}
public static int main (string[] args) {
var app = new Application ();
return app.run (args);
}
}
我不明白这段代码中的对象?它是什么?它是一个对象吗?如果它是一个对象,那么为什么它没有新的关键字并且没有实例化?
解决方法
您在构造函数中看到的 Object()
是特定于 Vala 的语法,称为:GObject-style construction。它允许您一次性设置所有属性。
这允许您使用 GObject 所谓的“构造属性”:可以在构造期间设置的属性(有时它们甚至只能在构造期间专门设置)。