Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie das Titelleistensymbol mit Gio fest

So legen Sie das Titelleistensymbol mit Gio fest

WBOY
WBOYnach vorne
2024-02-09 21:18:09548Durchsuche

如何使用 Gio 设置标题栏图标

php-Editor Yuzai stellt Ihnen heute eine einfache und praktische Methode vor, nämlich wie Sie mit Gio das Titelleistensymbol festlegen. Bei der Entwicklung von Desktop-Anwendungen kann ein schönes Titelleistensymbol die Attraktivität und den professionellen Eindruck der Anwendung steigern. Dies können wir ganz einfach erreichen, indem wir Gio verwenden, eine leistungsstarke Grafikbibliothek. In diesem Artikel zeigen wir Ihnen, wie Sie mit Gio ein Titelleistensymbol einrichten, um Ihre App optisch hervorzuheben. Lass uns einen Blick darauf werfen!

Frageninhalt

Ich habe ein Problem mit der Gio-Benutzeroberfläche (https://gioui.org/).

Wie Sie sehen, ist das Fenstersymbol nicht festgelegt und es gibt keine Option, es festzulegen.

Wenn Sie ein neues Fenster erstellen, können Sie nur den Titel festlegen:

w := app.NewWindow(app.Title("My APP Title"))

Aber wenn ich das richtig verstehe, sollte das Symbol aus dem Ressourcenmanifest geladen werden:

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
}

Um das Ressourcenmanifest zu erstellen, verwende ich go winres: https://github.com/tc-hib/go-winres

Ich habe das Anwendungssymbol in winres.json und das Symbol in der Taskleiste korrekt eingestellt, wie in der Anleitung beschrieben.

Ich denke, es sollte eine Möglichkeit geben, das Fenstersymbol im Anwendungstitel festzulegen, aber ich kann nicht finden, welchen Schlüssel ich im JSON angeben soll:

{
  "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"
    }
  }
}

Workaround

Der offizielle Weg ist die Verwendung des gogio-Tools, das leider nur sehr wenig Dokumentation hat und im Vergleich zu go-winres viele Einschränkungen aufweist.

Installieren Sie es mit go install gioui.org/cmd/gogio@latest

Dann kompilieren Sie Ihre Anwendung mit:

@GOOS=windows GOARCH=amd64 gogio -buildmode=exe -icon=appicon.png -arch=amd64 -target=windows -o myapp.exe app-path/

Ändern Sie das Schema und die Pfade entsprechend Ihren Anforderungen.

Wie auch immer, soweit ich weiß, unterstützt gogio nur PNG, es generiert automatisch alle erforderlichen Auflösungen.

Da ich go-winres verwenden wollte, habe ich einfach Resource Hacker a> verwendet, um die Exe-Ressource zu dekompilieren.

Ich habe festgestellt, dass Sie zum Festlegen des Symbols winres.json wie folgt festlegen müssen:

{
  "RT_GROUP_ICON": {
    "#1": {
      "0409": "myicon_EN.ico"
    }
  },
  "RT_MANIFEST": {
    "#1": {
      "0409": 
// Your settings
  }
}

Dann können Sie go build und go-winres verwenden, um normal zu kompilieren. Denken Sie nur daran, -ldflags=-H=windowsgui

festzulegen

Das obige ist der detaillierte Inhalt vonSo legen Sie das Titelleistensymbol mit Gio fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen