芹菜是一根葱
专业解决各种前端Bug,吊打各种面试官
posts - 36,comments - 2,views - 77851

环境:go fyne 

要求:电脑右下方添加系统托盘,点击图标显示托盘菜单

效果:

实现:

复制代码
 1 package main
 2 
 3 import (
 4     "fyne.io/fyne/v2"
 5     "fyne.io/fyne/v2/app"
 6     "fyne.io/fyne/v2/widget"
 7     "fyne.io/fyne/v2/driver/desktop"
 8     "fyne.io/fyne/v2/theme"
 9 )
10 
11 func main() {
12     myApp := app.New()
13     
14     // 加载自定义图标
15     icon, _ := fyne.LoadResourceFromPath("golang.ico")
16     myApp.SetIcon(icon)
17     myWindow := myApp.NewWindow("Button Widget")
18     addSystemTray(myApp,myWindow)
19 
20     label := widget.NewLabel("add icon")
21 
22     myWindow.SetContent(label)
23     myWindow.Resize(fyne.NewSize(500, 500))
24     //窗口居中
25     myWindow.CenterOnScreen()
26     myWindow.ShowAndRun()
27 }
28 
29 // 系统托盘
30 func addSystemTray(a fyne.App, w fyne.Window) {
31     if desk, ok := a.(desktop.App); ok {
32         h := fyne.NewMenuItem("芹菜是一根葱", func() { w.Show() /* 显示窗口 */ })
33         h.Icon = theme.HomeIcon() //图标
34         m := fyne.NewMenu("MyApp",h)
35         desk.SetSystemTrayMenu(m)
36     }
37     w.SetCloseIntercept(func() {
38        w.Hide()
39     })
40 }
复制代码

 

posted on   芹菜是一根葱  阅读(592)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示