溫馨提示×

golang在ubuntu上如何進行圖形界面開發

小樊
53
2025-07-03 13:30:07
欄目: 編程語言

在Ubuntu上進行Golang圖形界面開發,你可以選擇多種GUI框架。以下是一些常用的框架及其使用示例:

Fyne

Fyne是一個輕量級、跨平臺的GUI框架,它提供了一套簡單、直觀的API,使得開發者可以快速、容易地開發出美觀、易用的GUI應用。

安裝Fyne

首先,確保你已經安裝了Golang。然后,使用以下命令安裝Fyne庫:

go get -u fyne.io/fyne/v2

創建一個簡單的Fyne應用

以下是一個使用Fyne庫創建窗口和按鈕的示例代碼:

package main

import (
	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
)

func main() {
	myApp := app.New()
	myWindow := myApp.NewWindow("Fyne App")

	label := widget.NewLabel("Hello, Fyne!")
	button := widget.NewButton("Click me", func() {
		label.SetText("Hello, again!")
	})

	content := container.NewVBox(
		label,
		button,
	)

	myWindow.SetContent(content)
	myWindow.ShowAndRun()
}

Qt5-Go

Qt5-Go是基于Qt框架的Golang綁定,適用于復雜桌面應用。

安裝Qt5-Go

使用以下命令安裝Qt5-Go庫:

go get -u github.com/therecipe/qt

創建一個簡單的Qt5-Go應用

以下是一個使用Qt5-Go庫創建窗口和按鈕的示例代碼:

package main

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

type MyWindow struct {
	*widgets.QMainWindow
}

func (w *MyWindow) closeEvent(event *widgets.QCloseEvent) {
	fmt.Println("Window closed!")
	event.Accept()
}

func main() {
	app := widgets.NewQApplication(nil)

	window := &MyWindow{
		QMainWindow: widgets.NewQMainWindow(nil),
	}
	window.SetWindowTitle("Hello, GUI")
	window.SetFixedSize(true)
	window.SetMinimumSize(core.NewQSize(400, 300))
	window.Resize(core.NewQSize(400, 300))

	label := widgets.NewQLabel2("Hello, GUI!", window, 0)
	label.SetAlignment(core.QtAlignCenter)
	window.SetCentralWidget(label)

	button := widgets.NewQPushButton2("Click me!", window)
	button.SetGeometry(core.NewQRect(100, 100, 100, 30))
	button.clicked.Connect(func() {
		label.SetText("Button clicked!")
	})
	window.SetCentralWidget(button)

	window.Show()
	app.Exec()
}

這些框架都提供了豐富的組件和布局管理器,可以幫助你快速構建圖形界面。你可以根據自己的需求選擇合適的框架進行開發。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女