在Python中使用App指示器中的Gtk.Widgets
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Python中使用App指示器中的Gtk.Widgets,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1643字,纯文字阅读大概需要3分钟。
内容图文
![在Python中使用App指示器中的Gtk.Widgets](/upload/InfoBanner/zyjiaocheng/739/8b335d9a300c48a8be2280c6caaedf16.jpg)
在2010年,Stefano Palazzo问了一个相关的问题,Putting an arbitrary gtk.Widget into an appindicator.Indicator,并在StackOverflow问了类似的问题.在这两种情况下,共识是Ubuntu的App指标是有限的.正如Michael Ekstrand所说:
The Application Indicator menu support is based on D-Bus menus, which
are limited in what they support – they only support basic menu
functionality, not more exotic things such as arbitrary widgets.
然而,它与我们今天在蓝牙指示器中看到的相反,在2016年:它使用切换开关.
从13.04开始,Ubuntu One指标可以观察到同样的情况:
显然有一种方法.我研究过指标蓝牙源代码,但它是用Vala编写的.然而,我主要在python中工作,学习Vala只是为了重写我现有的所有指标,这有点太多了.
所以问题的核心是:如何使用Gtk.Widgets,或者至少使用Python的蓝牙指示器中的切换开关?
注意:我愿意在这个问题上给予奖励,以奖励一个能在python中提供工作示例的答案.不接受其他语言.
解决方法:
存在这个问题是因为虽然AppIndicators可以轻松创建指示器菜单,但它们确实妨碍了制作指示器菜单.让我们看一下使用AppIndicator的示例python代码与使用GLib Menus的示例python代码之间的差异,就像蓝牙代码那样.
首先,你被指示制作一个gtk.Menu,这些是使用Gtk.Action的旧式Gtk菜单对象,现在已弃用. AppIndicator在set_menu(…)过程中从你那里获取gtk.Menu对象并解析它,将它找到的每个菜单推送到使用libdbusmenu创建的指标服务上.这个解析过程意味着无论您做什么,AppIndicator都不支持的任何内容都会被过滤掉.
接下来让我们看一下蓝牙菜单.这是使用Gio.Menu对象创建的,这些是使用GAction系统的新式Gnome菜单.然后它在不使用AppIndicator或libdbusmenu的情况下注册了它自己的服务,并使用自定义的x-canonical-type属性设置它来创建切换小部件,该小部件被传递给libido进行解析.
这整个练习非常糟糕,因为它都是Canonical自己的Unity定制.因此,只要团结一致,无论如何都没有指标.
内容总结
以上是互联网集市为您收集整理的在Python中使用App指示器中的Gtk.Widgets全部内容,希望文章能够帮你解决在Python中使用App指示器中的Gtk.Widgets所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。