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

Bagaimana untuk menetapkan ikon bar tajuk menggunakan Gio

WBOY
WBOYke hadapan
2024-02-09 21:18:09552semak imbas

如何使用 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"))

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

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
}

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

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/

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 a> 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
  }
}

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam