Python : 添加 url 到 appindicator 中的菜单
Python : Add url to menu in appindicator
我正在尝试使用 appindicator 和 Gtk 制作一个小应用程序。我的目标是显示包含 link 到 url 的服务器列表。
这是我的尝试:
from gi.repository import Gtk as gtk
from gi.repository import AppIndicator3 as appindicator
def main():
indicator = appindicator.Indicator.new(APPINDICATOR_ID, img, appindicator.IndicatorCategory.SYSTEM_SERVICES)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
indicator.set_menu(build_menu())
gtk.main()
def build_menu():
menu = gtk.Menu()
value = "label"
item = gtk.MenuItem()
button = gtk.LinkButton("http://url/host/id", label=value)
button.show()
item.add(button)
item.show()
menu.append(item)
menu.show_all()
return menu
if __name__ == "__main__":
main()
一切正常,我没有发现任何错误。但是当我启动应用程序时,我只有菜单,有项目但没有 link.
我见过很多 gtk.Window 的例子,但没有看到带有应用程序菜单的例子。
有没有办法在这个菜单中加入 link?
谢谢
我找到了一种方法。我不确定这是最好的方法,但它确实有效。
我没有创建 LinkItem,而是创建了一个函数用于打开 url:
def open_url(source):
webbrowser.open("http://url/host/id")
然后我用 connect
称呼它:
item.connect("activate", open_url)
当我 运行 我的应用程序并单击我的项目时,它会按预期打开 url。这是部分代码工作:
def build_menu():
menu = gtk.Menu()
value = "label"
item = gtk.MenuItem(value)
item.connect("activate", open_url)
menu.append(item)
menu.show_all()
return menu
正如我在网络上的许多 post 中看到的那样,与普通的 Gtk 应用程序相比,appindicator 的功能有限。
我正在尝试使用 appindicator 和 Gtk 制作一个小应用程序。我的目标是显示包含 link 到 url 的服务器列表。
这是我的尝试:
from gi.repository import Gtk as gtk
from gi.repository import AppIndicator3 as appindicator
def main():
indicator = appindicator.Indicator.new(APPINDICATOR_ID, img, appindicator.IndicatorCategory.SYSTEM_SERVICES)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
indicator.set_menu(build_menu())
gtk.main()
def build_menu():
menu = gtk.Menu()
value = "label"
item = gtk.MenuItem()
button = gtk.LinkButton("http://url/host/id", label=value)
button.show()
item.add(button)
item.show()
menu.append(item)
menu.show_all()
return menu
if __name__ == "__main__":
main()
一切正常,我没有发现任何错误。但是当我启动应用程序时,我只有菜单,有项目但没有 link.
我见过很多 gtk.Window 的例子,但没有看到带有应用程序菜单的例子。
有没有办法在这个菜单中加入 link?
谢谢
我找到了一种方法。我不确定这是最好的方法,但它确实有效。
我没有创建 LinkItem,而是创建了一个函数用于打开 url:
def open_url(source):
webbrowser.open("http://url/host/id")
然后我用 connect
称呼它:
item.connect("activate", open_url)
当我 运行 我的应用程序并单击我的项目时,它会按预期打开 url。这是部分代码工作:
def build_menu():
menu = gtk.Menu()
value = "label"
item = gtk.MenuItem(value)
item.connect("activate", open_url)
menu.append(item)
menu.show_all()
return menu
正如我在网络上的许多 post 中看到的那样,与普通的 Gtk 应用程序相比,appindicator 的功能有限。