首页 > 其他分享 >golang fyne 添加系统托盘

golang fyne 添加系统托盘

时间:2023-09-18 18:25:49浏览次数:37  
标签:myApp 系统托盘 fyne golang v2 io myWindow

环境: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 }

 

标签:myApp,系统托盘,fyne,golang,v2,io,myWindow
From: https://www.cnblogs.com/sinberya/p/17712736.html

相关文章

  • golang fyne 创建两个窗口,窗口居中。点击按钮显示第二个窗口 myApp.NewWindow("new")
    环境:gofyne实现:在窗口的按钮中,点击按钮弹出第二窗口,并且窗口居中注意:创建的第一个窗口和第二个窗口必须是通过同一个myApp:=app.New()创建出来的效果:实现:1packagemain23import(4"fmt"56"fyne.io/fyne/v2"7"fyne.io/fyne/v2/app"8......
  • golang项目搭建笔记-cobra
    cobra介绍GitHub地址cobra中,一个命令主要概念为command,arguement,flag,可以理解为谓语、宾语、状语格式为APPNAMECOMMANDARG--FLAG,例如:gitcloneURL--bare项目搭建cobra提供了非常方便的工具cobra-cli,可以快速添加命令,参考官方文档新建项目#进入项目目录gomodin......
  • Golang 基础语法的使用
    1packagecustomer23import(4"encoding/json"5"fmt"6"os"7)89typecustomerstruct{10Namestring11Sexstring12Ageint13Phonestring14......
  • 想入坑golang web,向大佬们请教些问题?
    当你准备入坑Go语言的Web开发时,以下是一些常见的问题,你可以向大佬们请教:如何设置和启动一个GoWeb服务器?Go语言有哪些常用的Web开发框架?它们之间有什么区别和优劣势?Go语言中的路由是如何实现的?如何处理不同的HTTP请求方法和URL参数?Go语言如何处理请求和响应,以及如何......
  • golang工具值generate
     示例:大家经常碰到命名错误码、状态码的同时,又要同步写码对应的翻译,有没有感觉很无聊。这里举一个例子:packagemain​import"fmt"​//定义错误码const(ERR_CODE_OK=0//OKERR_CODE_INVALID_PARAMS=1//无效参数ERR_CODE_TIMEOUT......
  • 个人微信API对接-Golang版本
    golang版个人微信号API,突破登录限制,类似开发公众号一样,开发个人微信号微信机器人......
  • Golang字符串拼接性能
    问题引入Golang中的string类型是只读且不可变的。因此通过循环字符串切片拼接字符串的方式会导致大量的string创建、销毁和内存分配解决方法通过bytes.Buffer优化使用varbsbytes.Buffer存放最终拼接好的字符串,一定程度上避免了string每进行一次拼接都重新申请内存空间的问题但依......
  • Golang map集合丶struct结构体
    一.map集合1//map键值对集合2functestMap(){3//Map的定义:var变量名map[keytType]valueType4//细节:5//1.key唯一6//2.map是引用7//3.直接遍历map是无序的8//4.map会自动扩容,make中设置的长度并没有对map任何限制......
  • (转)对比学习:Golang VS Python3
    原文:https://juejin.cn/post/6844903843050815502Golang和Python都是目前在各自领域最流行的开发语言之一。Golang其高效而又友好的语法,赢得了很多后端开发人员的青睐,最适用于高并发网络编程的语言之一。Python不用说,TIOBE排行榜的前十常驻居民,现在已经稳定在前五了。在机器......
  • 你知道Golang的模板怎么用吗?带你了解动态文本的生成!
    GolangTemplateGo语言中的GoTemplate是一种用于生成文本输出的简单而强大的模板引擎。它提供了一种灵活的方式来生成各种格式的文本,例如HTML、XML、JSON等。GoTemplate的具有以下主要特性:简洁易用:GoTemplate语法简洁而易于理解。它使用一对双大括号“{{}}”来标记模板的......