Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menetapkan ikon bar tajuk menggunakan Gio

Bagaimana untuk menetapkan ikon bar tajuk menggunakan Gio

WBOY
Lepaskan: 2024-02-09 21:18:09
ke hadapan
615 orang telah melayarinya

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

editor php Yuzai hari ini memperkenalkan anda kepada kaedah yang mudah dan praktikal, iaitu cara menggunakan Gio untuk menetapkan ikon bar tajuk. Apabila membangunkan aplikasi desktop, ikon bar tajuk yang cantik boleh meningkatkan daya tarikan dan rasa profesional aplikasi. Kita boleh mencapai ini dengan mudah dengan menggunakan Gio, perpustakaan grafik yang berkuasa. Dalam artikel ini, kami akan membimbing anda tentang cara menyediakan ikon bar tajuk menggunakan Gio untuk menonjolkan apl anda secara visual. Mari lihat!

Kandungan soalan

Saya menghadapi masalah menggunakan Gio UI (https://gioui.org/).

Seperti yang anda lihat, ikon tetingkap tidak ditetapkan dan tiada pilihan untuk menetapkannya.

Apabila anda mencipta tetingkap baharu, anda hanya boleh menetapkan tajuk:

w := app.NewWindow(app.Title("My APP Title"))
Salin selepas log masuk

Tetapi jika saya faham dengan betul, ikon harus dimuatkan daripada manifes sumber:

go\pkg\mod\[email protected]\app\internal\windows\windows.go
Salin selepas log masuk

//

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
}
Salin selepas log masuk

Untuk membina manifes sumber, saya menggunakan go winres: https://github.com/tc-hib/go-winres

Saya telah menetapkan ikon aplikasi dengan betul dalam winres.json dan ikon dalam bar tugas seperti yang diterangkan dalam panduan.

Saya rasa perlu ada cara untuk menetapkan ikon tetingkap dalam tajuk aplikasi, tetapi saya tidak dapat mencari kunci yang harus saya nyatakan dalam 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"
    }
  }
}
Salin selepas log masuk

Penyelesaian

Cara rasmi adalah dengan menggunakan alat gogio, yang malangnya mempunyai dokumentasi yang sangat sedikit dan mempunyai banyak batasan berbanding dengan go-winres.

Pasang menggunakan go install gioui.org/cmd/gogio@latest

Kemudian susun aplikasi anda menggunakan:

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

Tukar skema dan laluan mengikut keperluan anda.

Apa pun, setakat yang saya faham gogio hanya menyokong png, ia secara automatik menjana semua resolusi yang diperlukan.

Memandangkan saya ingin menggunakan go-winres, saya hanya menggunakan Resource Hacker untuk menyahkompilasi sumber exe.

Saya mendapati bahawa untuk menetapkan ikon anda perlu menetapkan winres.json seperti ini:

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

Kemudian anda boleh menggunakan go build dan go-winres untuk menyusun seperti biasa, cuma ingat untuk tetapkan -ldflags=-H=windowsgui

Atas ialah kandungan terperinci Bagaimana untuk menetapkan ikon bar tajuk menggunakan Gio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan