linux

Go语言在Linux上的图形界面开发入门

小樊
37
2025-07-11 11:37:23
栏目: 编程语言

Go语言在Linux上的图形界面开发可以通过多个流行的GUI库来实现,以下是一些常用的库及其入门指南:

1. Qt5-Go

package main

import (
	"github.com/therecipe/qt/core"
	"github.com/therecipe/qt/widgets"
)

func main() {
	app := widgets.NewQApplication(nil)
	window := widgets.NewQMainWindow(nil)
	window.SetWindowTitle("Hello, World!")
	window.SetFixedSize(true)

	centralWidget := widgets.NewQWidget(window)
	centralWidget.SetLayout(widgets.NewQVBoxLayout())

	label := widgets.NewQLabel2("Hello, World!", centralWidget)
	centralWidget.AddWidget(label)

	window.SetCentralWidget(centralWidget)
	window.Show()

	app.Exec()
}

2. Fyne

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")

	hello := widget.NewLabel("Hello Fyne!")
	quit := widget.NewButton("Quit", func() {
		myApp.Quit()
	})

	myWindow.SetContent(container.NewVBox(hello, quit))
	myWindow.ShowAndRun()
}

3. GTK

package main

import (
	"github.com/gotk3/gotk3/gtk"
	"log"
)

func main() {
	gtk.Init(nil)
	win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
	if err != nil {
		log.Fatal("Unable to create window:", err)
	}

	win.SetTitle("Hello GTK")
	win.Connect("destroy", func() {
		gtk.MainQuit()
	})

	win.ShowAll()
	gtk.Main()
}

环境准备

在开始编写GUI应用之前,需要准备以下环境:

go get fyne.io/fyne/v2

总结

以上是Go语言在Linux上进行图形界面开发的一些基本步骤和示例代码。通过选择合适的GUI库,如Qt5-go、Fyne或GTK,开发者可以轻松创建出功能丰富的Linux GUI应用。希望这些信息对您有所帮助。

0
看了该问题的人还看了