无法在GoTK3应用程序中创建菜单栏

I'm using gotk3 (a project that provides Go bindings for GTK+3) for writing a simple GUI application. I'd like to show a menu bar in the application but now it doesn't show any menu (tested on both MacOSX and Linux). This is the code:

package main

import (
    "github.com/gotk3/gotk3/gtk"
    "log"
)

func main() {

    gtk.Init(nil)

    // creates window
    win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
    if err != nil {
        log.Fatal("Unable to create window:", err)
    }
    win.SetDefaultSize(800, 600)
    win.Connect("destroy", func() {
        gtk.MainQuit()
    })

    // creates grid and label
    grid, err := gtk.GridNew()
    if err != nil {
        log.Fatal("Unable to create grid:", err)
    }
    label, _ := gtk.LabelNew("Hello, gotk3!")
    grid.Add(label)


    // creates menu
    menuBar, err := gtk.MenuBarNew()
    if err != nil {
        log.Fatal("Unable to create menubar:", err)
    }

    menu, err := gtk.MenuNew()
    if err != nil {
        log.Fatal("Unable to create menu:", err)
    }
    menu.SetName("File")

    menuItem, err := gtk.MenuItemNewWithLabel("Open")
    if err != nil {
        log.Fatal("Unable to create menuitem:", err)
    }
    menu.Append(menuItem)

    // attaches menubar to grid
    grid.Attach(menuBar, 0, 0, 200, 200)

    // shows window
    win.Add(grid)
    win.ShowAll()
    gtk.Main()
}

Since it doesn't work I don't think that Attach() is the right function for doing this. I never worked with GTK+, so almost no idea of what to do or where to look. Any hint?

Thanks, Andrea

OK, I found out how to do it. Following this example I understood the steps needed to create a menu on GTK. The edited part is:

    // creates menu
    menuBar, err := gtk.MenuBarNew()
    if err != nil {
        log.Fatal("Unable to create menubar:", err)
    }

    fileMenu, err := gtk.MenuNew()
    if err != nil {
        log.Fatal("Unable to create menu:", err)
    }

    fileMenuItem, err := gtk.MenuItemNewWithLabel("File")
    if err != nil {
        log.Fatal("Unable to create menuitem:", err)
    }

    openMenuItem, err := gtk.MenuItemNewWithLabel("Open")
    if err != nil {
        log.Fatal("Unable to create menuitem:", err)
    }

    fileMenuItem.SetSubmenu(fileMenu)
    fileMenu.Append(openMenuItem)
    menuBar.Append(fileMenuItem)

    gtkGrid.Attach(menuBar, 0, 0, 200, 200)
    win.Add(gtkGrid)

Now the menu is displayed over the label (on MacOsX), but at least it's displayed.