1

我正在使用 gtk 3 和 vala 开发一个 GUI 应用程序。这是我来自 MainWindow::MainWindow() 的源代码

    var menu = new MenuModel();
    var app = this.application;
    app.menubar = menu;

valac 给出了这个错误:

ewns_viewer.vala:54.9-54.19: error: The name `menubar' does not exist in the context of `Gtk.Application'
        app.menubar = menu;
        ^^^^^^^^^^^

看着这个,说别的。我也试过

var obj_class = (ObjectClass) typeof (Gtk.Application).class_ref ();
var properties = obj_class.list_properties ();
foreach (var prop in properties) 
{
    stdout.printf ("%s\n", prop.name);
}

这给出了这个输出:

application-id
flags
is-registered
is-remote
inactivity-timeout
action-group
register-session
app-menu
menubar

如果我做对了 Gtk.Application 具有所有这些属性,那么为什么 valac 会给我这个错误?

我正在使用 valac 0.14.2.Ubuntu 12.04。

4

2 回答 2

2

Ubuntu 上 Vala 0.14的绑定/usr/share/vala-0.14/vapi/gtk+-3.0.vapi已过期。如果您安装 Vala 0.16,此绑定将可用。

于 2012-06-09T18:46:14.737 回答
0

该属性是在 vala 0.15.1 中添加的。您正在使用 6 个月大的 vala 版本。最新版本是一周前发布的 0.17.1。

于 2012-06-09T22:23:47.250 回答