Gotk3 grid.InsertRow problem

I have been unable to use GTK3 Grid to insert an extra row.

I have coded a minimal case which shows my problem. Maybe I am missing something.

Any feedback appreciated.

package main

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

func main(){
    gtk.Init(nil)
    major:=gtk.GetMajorVersion(); minor:=gtk.GetMinorVersion()
    fmt.Println(fmt.Sprintf("GTK version %d.%d",major,minor))
    win,_ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)

    win.SetDefaultSize(500,400)
    win.SetTitle("Grid Test")
    win.Connect("destroy", func() { gtk.MainQuit() })

    grid,_ := gtk.GridNew()

    grid.SetOrientation(gtk.ORIENTATION_VERTICAL)

    lbl,_:=gtk.LabelNew("Label 0")
    grid.Attach(lbl,1,1,1,1)

    lbl1,_:=gtk.LabelNew("Label 1")
    grid.Attach(lbl1,1,2,1,1)

    btn,_:=gtk.ButtonNewWithLabel("Click")
    btn.Connect("clicked", func() {hdrClicked(grid,lbl)})
    grid.Attach(btn,1,3,1,1)

    win.Add(grid)

    win.ShowAll()
    gtk.Main()
    }

func hdrClicked(grid *gtk.Grid, lblRef *gtk.Label){
    fmt.Println("Click")
    lbl,_:=gtk.LabelNew("Added Label")
    grid.InsertRow(2)
    grid.Attach(lbl,1,2,1,1)
    grid.QueueDraw()
    }

test1A test1B

I amended the original post to reflect this reply.

I amended this reply appropriately as it was no longer needed

Yes I was missing something.

lbl.Show() must be called as lbl is created after the initial call to ShowAll()

grid.QueueDraw() has no effect and should be deleted

If I could amend amend the code in the original post I would

Here is working code

package main

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

func main(){
    gtk.Init(nil)
    major:=gtk.GetMajorVersion(); minor:=gtk.GetMinorVersion()
    fmt.Println(fmt.Sprintf("GTK version %d.%d",major,minor))
    win,_ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)

    win.SetDefaultSize(500,400)
    win.SetTitle("Grid Test")
    win.Connect("destroy", func() { gtk.MainQuit() })

    grid,_ := gtk.GridNew()

    grid.SetOrientation(gtk.ORIENTATION_VERTICAL)

    lbl,_:=gtk.LabelNew("Label 0")
    grid.Attach(lbl,1,1,1,1)

    lbl1,_:=gtk.LabelNew("Label 1")
    grid.Attach(lbl1,1,2,1,1)

    btn,_:=gtk.ButtonNewWithLabel("Click")
    btn.Connect("clicked", func() {hdrClicked(grid,lbl)})
    grid.Attach(btn,1,3,1,1)

    win.Add(grid)

    win.ShowAll()
    gtk.Main()
    }   

func hdrClicked(grid *gtk.Grid, lblRef *gtk.Label){
    fmt.Println("Click")
    lbl,_:=gtk.LabelNew("Added Label")
    //grid.InsertNextTo(lblRef,gtk.POS_BOTTOM)
     grid.InsertRow(2)
    grid.Attach(lbl,1,2,1,1)
    lbl.Show()
    //grid.QueueDraw()
    }
```