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

バインディングは/usr/share/vala-0.14/vapi/gtk+-3.0.vapi、Ubuntu の Vala 0.14 では古くなっています。Vala 0.16 をインストールすると、このバインディングが使用可能になります。

于 2012-06-09T18:46:14.737 に答える
0

そのプロパティは、vala 0.15.1 で追加されました。vala の 6 か月前のリリースを使用しています。最新のリリースは 0.17.1 で、1 週間前にリリースされました。

于 2012-06-09T22:23:47.250 に答える