如何在Rhythmbox中收听特定信号?

我想在Rhythmbox中按下Ctrl + W按键,如果发生这种情况,请调用函数。 我怎么能用Python做到这一点?

我假设您正在创建某种插件。 插件可以用C或Python编写。 我不知道怎么做但我知道你可以在哪里找到这些信息:

  1. 用于创建插件的文档 。
  2. API文档 。
  3. 在rhythmbox-devel邮件列表上询问(rhythmbox-devel@lists.gnome.org)
  4. 询问IRC频道(irc.gimp.net上的#rhythmbox)

这是开始的基础:

 import dbus import gobject from dbus.mainloop.glib import DBusGMainLoop 
def on_visibility_changed(visible): if visible: print "Rhythmbox Shown" else: print "Rhythmbox Hidden"
DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus() rhythmbox = bus.get_object('org.gnome.Rhythmbox', '/org/gnome/Rhythmbox/Shell') rhythmbox = dbus.Interface(rhythmbox, 'org.gnome.Rhythmbox.Shell')
rhythmbox.connect_to_signal("visibilityChanged", on_visibility_changed)
loop = gobject.MainLoop() loop.run()

这两个重要的部分是定义函数,请参阅API文档,了解它应该接受哪些参数,并将信号连接到它。 同样,API列出了这些信号。

例如,如果要捕获RBPlayer中定义的信号,则需要将yoru会话总线连接到Player,而不是Shell。 不幸的是,API相当复杂,这里不容易解释。 通过文档进行一次很好的翻找,你可能会找到你需要的东西。