在Ubuntu上進行Golang圖形界面開發,你可以選擇多種GUI框架。以下是一些常用的框架及其使用示例:
Fyne是一個輕量級、跨平臺的GUI框架,它提供了一套簡單、直觀的API,使得開發者可以快速、容易地開發出美觀、易用的GUI應用。
首先,確保你已經安裝了Golang。然后,使用以下命令安裝Fyne庫:
go get -u fyne.io/fyne/v2
以下是一個使用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是基于Qt框架的Golang綁定,適用于復雜桌面應用。
使用以下命令安裝Qt5-Go庫:
go get -u github.com/therecipe/qt
以下是一個使用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()
}
這些框架都提供了豐富的組件和布局管理器,可以幫助你快速構建圖形界面。你可以根據自己的需求選擇合適的框架進行開發。