如果其他文章发现服务跑不起来,出现闪退,可以参考本文,请看到最后。
编译和环境问题点我解决
第一步 直接上代码
package main
import (
"syscall"
"github.com/lxn/walk"
"github.com/lxn/win"
)
func main() {
window, _ := walk.NewMainWindow()
// 设置窗体标题
window.SetTitle(“hello world”)
// 设置窗体的宽高
window.SetWidth(800)
window.SetHeight(800)
// 设置窗体生成在屏幕的正中间
// 窗体横坐标 = ( 屏幕宽度 - 窗体宽度 ) / 2
// 窗体纵坐标 = ( 屏幕高度 - 窗体高度 ) / 2
window.SetX((int(win.GetSystemMetrics(0)) - window.Width()) / 2)
window.SetY((int(win.GetSystemMetrics(1)) - window.Height()) / 2)
// 设置窗体为显示状态(默认:隐藏状态)
window.Show()
// 运行窗体
window.Run()
}
第二步 运行first.exe查看效果
至此完成
问题:其实此时运行不起来,会出现窗口闪退,这也是网上其他帖子的问题
原因:通过定位分析,发现是调用walk库内部layout对象方法时layout为nil,导致服务挂了;
解决:在main函数中 第一行代码之后增加代码 window.SetLayout(walk.NewVBoxLayout()),初始化layout,即可解决。