php小編魚仔今天為大家介紹一個簡單又實用的方法,即如何使用 Gio 設定標題列圖示。在開發桌面應用程式時,一個漂亮的標題列圖示可以增加應用程式的吸引力和專業感。透過使用 Gio,一個功能強大的圖形庫,我們可以輕鬆地實現這一目標。在本文中,我們將逐步介紹如何使用 Gio 設定標題列圖標,讓您的應用程式在視覺上更加出色。讓我們一起來看看吧!
我在使用 Gio UI (https://gioui.org/) 時遇到問題。
如您所見,視窗圖示未設置,並且沒有選項可以設定它。
當您建立新視窗時,您只能設定標題:
w := app.NewWindow(app.Title("My APP Title"))
但如果我理解正確,圖標應該從資源清單中加載:
go\pkg\mod\[email protected]\app\internal\windows\windows.go
//
func LoadImage(hInst syscall.Handle, res uint32, typ uint32, cx, cy int, fuload uint32) (syscall.Handle, error) { h, _, err := _LoadImage.Call(uintptr(hInst), uintptr(res), uintptr(typ), uintptr(cx), uintptr(cy), uintptr(fuload)) if h == 0 { return 0, fmt.Errorf("LoadImageW failed: %v", err) } return syscall.Handle(h), nil }
為了建立資源清單,我使用 go winres:https://github.com/tc-hib/go-winres
我已按照指南中的說明在 winres.json 中正確設定了應用程式圖示和工作列中的圖示。
我認為應該有一種方法可以在應用程式標題中設定視窗圖標,但我找不到應該在 json 中指定哪個鍵:
{ "RT_GROUP_ICON": { "APP": { "0000": [ "icon_64.png", "icon_48.png", "icon_32.png", "icon_16.png" ] }, "OTHER": { "0000": "icon.png" }, "#42": { "0409": "icon_EN.ico", "040C": "icon_FR.ico" } } }
官方的方法是使用gogio 工具,不幸的是,與go-winres 相比,該工具的文檔非常少,並且有很多限制。
使用 go install gioui.org/cmd/gogio@latest
安裝它
然後使用以下命令編譯您的應用程式:
@GOOS=windows GOARCH=amd64 gogio -buildmode=exe -icon=appicon.png -arch=amd64 -target=windows -o myapp.exe app-path/
根據您的需求更改架構和路徑。
無論如何,據我了解gogio僅支援png,它會自動產生所有需要的解析度。
由於我想使用go-winres,所以我剛剛使用了Resource Hacker a>反編譯exe資源。
我發現要設定圖標,您需要像這樣設定 winres.json:
{ "RT_GROUP_ICON": { "#1": { "0409": "myicon_EN.ico" } }, "RT_MANIFEST": { "#1": { "0409": // Your settings } }
然後就可以用go build和go-winres正常編譯了,只要記得設定-ldflags=-H=windowsgui
以上是如何使用 Gio 設定標題列圖標的詳細內容。更多資訊請關注PHP中文網其他相關文章!