在Debian上进行Golang图形界面开发,可选择以下主流方案,以下是具体步骤及示例:
sudo apt update && sudo apt install golang
sudo apt install libgtk-3-dev
sudo apt install qt5-default
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 Fyne")
button := widget.NewButton("Click Me", func() {
myWindow.SetTitle("Button Clicked!")
})
myWindow.SetContent(container.NewVBox(button))
myWindow.Resize(fyne.NewSize(300, 200))
myWindow.ShowAndRun()
}
运行:go run main.go
go get github.com/gotk3/gotk3/gtk
package main
import (
"log"
"github.com/gotk3/gotk3/gtk"
)
func main() {
gtk.Init(nil)
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
log.Fatal("无法创建窗口:", err)
}
win.SetTitle("Hello GTK")
win.SetDefaultSize(300, 200)
label := gtk.NewLabel("Hello, GTK!")
win.Add(label)
win.Connect("destroy", gtk.MainQuit)
win.ShowAll()
gtk.Main()
}
运行:go run main.go
go get -u github.com/therecipe/qt/cmd/...
$(go env GOPATH)/bin/qtsetup
package main
import (
"fmt"
"github.com/therecipe/qt/widgets"
)
func main() {
app := widgets.NewQApplication(len(os.Args), os.Args)
window := widgets.NewQMainWindow(nil, 0)
window.SetWindowTitle("Hello Qt")
button := widgets.NewQPushButton2("Click Me", nil)
button.ConnectClicked(func(bool) {
fmt.Println("Button Clicked!")
})
window.SetCentralWidget(button)
window.Show()
app.Exec()
}
运行:go run main.go
go mod
管理项目依赖,确保库版本兼容。GOOS
和GOARCH
环境变量实现(如GOOS=windows
)。根据项目需求选择库,Fyne适合快速构建现代化界面,GTK适合轻量级应用,Qt适合复杂功能需求。