在Golang中开发桌面应用程序,主要有以下几种主流方案:
1. Fyne(推荐)
Fyne是一个易于使用的UI工具包,采用Material Design风格。
安装:
go get fyne.io/fyne/v2
简单示例:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Hello World")
hello := widget.NewLabel("Hello Fyne!")
button := widget.NewButton("Click me", func() {
hello.SetText("Welcome :)")
})
content := container.NewVBox(hello, button)
myWindow.SetContent(content)
myWindow.ShowAndRun()
}
2. Wails(现代化选择)
Wails允许使用Go后端和前端技术(HTML/CSS/JS)构建桌面应用。
安装:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails init -n myapp -t react
3. Go-GTK
基于GTK+绑定,适合Linux桌面环境。
package main
import (
"github.com/gotk3/gotk3/gtk"
)
func main() {
gtk.Init(nil)
win, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
win.SetTitle("Simple Example")
win.Connect("destroy", func() {
gtk.MainQuit()
})
btn, _ := gtk.ButtonNewWithLabel("Hello World")
btn.Connect("clicked", func() {
btn.SetLabel("Hello GTK!")
})
win.Add(btn)
win.SetDefaultSize(300, 200)
win.ShowAll()
gtk.Main()
}
选择建议:
- Fyne:跨平台、易上手、现代界面
- Wails:需要Web技术栈、前后端分离架构
- Go-GTK:Linux环境、传统桌面应用
对于初学者,推荐从Fyne开始,它的API简洁,文档完善,且完全用Go编写。