Golang在Linux下可通过以下第三方库实现图形界面开发,以下是具体介绍及示例:
Fyne
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() { a := app.New() w := a.NewWindow("Hello Fyne") w.SetContent(container.NewVBox( widget.NewLabel("Hello, Linux GUI!"), widget.NewButton("Click Me", func() { // 按钮点击逻辑 }), )) w.ShowAndRun() }
Go-GTK
go get github.com/mattn/go-gtk/gtk
。package main import ( "github.com/mattn/go-gtk/gtk" ) func main() { gtk.Init(nil) window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) window.SetTitle("GTK Example") window.Connect("destroy", gtk.MainQuit) label := gtk.NewLabel("Hello, GTK!") window.Add(label) window.ShowAll() gtk.Main() }
Qt for Go (therecipe/qt)
go get github.com/therecipe/qt/cmd/...
。package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) window := widgets.NewQMainWindow(nil, 0) window.SetWindowTitle("Qt Example") label := widgets.NewQLabel2("Hello, Qt!", nil, 0) window.SetCentralWidget(label) window.Show() app.Exec() }
Lorca
go get github.com/zserge/lorca
。package main import ( "github.com/zserge/lorca" ) func main() { ui, _ := lorca.New("", "", 800, 600) defer ui.Close() ui.Load("data:text/html,<h1>Hello, Lorca!</h1>") <-ui.Done() }
选择建议:
开发前需确保Linux系统已安装对应库的依赖(如GTK开发包),可通过包管理器(如apt
)安装。