So legen Sie das Titelleistensymbol mit Gio fest

WBOY
Freigeben: 2024-02-09 21:18:09
nach vorne
551 Leute haben es durchsucht

如何使用 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"))
Nach dem Login kopieren

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

go\pkg\mod\[email protected]\app\internal\windows\windows.go
Nach dem Login kopieren

//

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
}
Nach dem Login kopieren

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"
    }
  }
}
Nach dem Login kopieren

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/
Nach dem Login kopieren

Ä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 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
  }
}
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!