Closed 52LY closed 3 years ago
子窗口加ShowNormal()就成功了,昨天折腾大半天
package main import "github.com/visualfc/atk/tk" import "fmt" type Window struct { *tk.Window } func NewSubWin() *Window { mw := &Window{} mw.Window = tk.NewWindow() lbl1 := tk.NewLabel(mw, "Hello ATK 01") btn := tk.NewButton(mw,"Destroy",tk.WidgetAttrWidth(20)) btn.SetTakeFocus(false) btn.OnCommand(func() { mw.Destroy() }) vbox := tk.NewHPackLayout(mw) vbox.AddWidget(lbl1,tk.PackAttrPadx(5),tk.PackAttrPady(5),tk.PackAttrAnchor(6)) vbox.AddWidget(btn,tk.PackAttrPadx(5),tk.PackAttrPady(5),tk.PackAttrAnchor(6)) return mw } func NewWindow() *Window { mw := &Window{} mw.Window = tk.RootWindow() lbl1 := tk.NewLabel(mw, "Hello ATK 01") btn := tk.NewButton(mw,"Quit",tk.WidgetAttrWidth(20)) btn.SetNativeAttribute("cursor","hand1") btn.SetNativeAttributes(tk.NativeAttr{"width","42"},tk.NativeAttr{"underline","1"}) fmt.Println(btn.NativeAttributes("cursor","width","underline")) btn.SetTakeFocus(false) btn.OnCommand(func() { tk.Quit() }) btn2 := tk.NewButton(mw,"关于子窗口",tk.WidgetAttrWidth(20)) btn2.SetTakeFocus(false) subwin := func() { sw := NewSubWin() sw.SetTitle("ATK Subwin Sample") sw.ResizeN(600, 600) sw.Center(nil) sw.ShowNormal() } btn2.OnCommand(func() { tk.MainLoop(subwin) }) hbox := tk.NewVPackLayout(mw) hbox.SetPaddingN(5, 5) hbox.AddWidgetEx(lbl1, 0, false, 6) hbox.AddWidgetEx(btn, 0, false, 6) hbox.AddWidgetEx(btn2, 0, false, 6) vbox := tk.NewHPackLayout(mw) vbox.AddWidgetEx(hbox, 0, false, 6) lbl3 := tk.NewLabel(mw, "Hello ATK 02") vbox.AddWidget(lbl3,tk.PackAttrPadx(5),tk.PackAttrPady(5),tk.PackAttrAnchor(6)) return mw } func main() { win := func() { mw := NewWindow() mw.SetTitle("ATK Sample") mw.ResizeN(600, 600) mw.Center(nil) mw.ShowNormal() } tk.MainLoop(win) }
子窗口加ShowNormal()就成功了,昨天折腾大半天