gpt4 book ai didi

Python 3 和 GTK3 : crossplatform tray icon

转载 作者:太空狗 更新时间:2023-10-30 02:57:12 28 4
gpt4 key购买 nike

possible使用 AppIndicator3 创建带有菜单的托盘图标。但是这个解决方案是不可移植的。例如it doesn't work on FreeBSD因为这个系统上没有 libappindicator3。我怀疑这样的代码在 Windows 和 MacOS 上也不起作用。

如何在没有 AppIndicator3 的情况下执行相同的操作,以便代码可以在所有(或几乎所有)系统上运行?

最佳答案

好的,我想我明白了。如果 AppIndicator3 不可用,我们的想法是回退到 Gtk.StatusIcon:

class TrayIcon:

def __init__(self, appid, icon, menu):
self.menu = menu

APPIND_SUPPORT = 1
try:
from gi.repository import AppIndicator3
except:
APPIND_SUPPORT = 0

if APPIND_SUPPORT == 1:
self.ind = AppIndicator3.Indicator.new(
appid, icon, AppIndicator3.IndicatorCategory.APPLICATION_STATUS)
self.ind.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
self.ind.set_menu(self.menu)
else:
self.ind = Gtk.StatusIcon()
self.ind.set_from_file(icon)
self.ind.connect('popup-menu', self.onPopupMenu)

def onPopupMenu(self, icon, button, time):
self.menu.popup(None, None, Gtk.StatusIcon.position_menu, icon, button, time)

适用于 Linux + Unity、Linux + Xfce、FreeBSD + i3。

另见:

关于Python 3 和 GTK3 : crossplatform tray icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937212/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com