推薦一個 Go GUI 實戰項目
大家好,我是 polarisxu。
一直以來,挺多人想嘗試 Go GUI 項目的,經過這些年的發展,響應的方案也挺多的,有原生的、有基於 Web 的。其中,fyne 這個 Go GUI 框架,發展比較好。之前寫過一篇文章:Go 真的也可以進行 GUI 開發:還有這樣的圖書呢。
今天推薦一個開源 Go GUI 項目:wormhole-gui,項目地址:https://github.com/Jacalz/wormhole-gui。這是一個跨平臺應用程序,可在設備之間輕鬆加密共享文件、文件夾和文本。
如果你使用的是 Go1.17 版本,可以直接終端運行如下命令查看效果:(注意,最新版是 v2)
$ go run github.com/Jacalz/wormhole-gui/v2@latest
成功後,會打開一個應用,如下圖:
主界面
還支持暗黑模式。有 4 個菜單:
-
Send
-
Receive
-
Settings
-
About
支持發送文件、文件夾、文本信息。
該項目涉及到的知識點:
-
fyne 的使用
-
網絡傳輸
看看 main.go 中的代碼:
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"github.com/Jacalz/wormhole-gui/v2/internal/assets"
"github.com/Jacalz/wormhole-gui/v2/internal/ui"
)
func main() {
a := app.NewWithID("com.github.jacalz.wormhole-gui")
a.SetIcon(assets.AppIcon)
w := a.NewWindow("wormhole-gui")
w.SetContent(ui.Create(a, w))
w.Resize(fyne.NewSize(700, 400))
w.SetMaster()
w.ShowAndRun()
}
不過項目存在以下問題:
1)選擇文件對話框太醜
對話框
醜陋程度和 Java swing GUI 有得一拼。
2)不支持中文。
發送文本內容的對話框輸入中文亂碼。選擇文件對話框中,文件名是中文也顯示亂碼。看你有沒有辦法解決這個問題。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/gkWwNovhppWBOc35Buo7Qw