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

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

我想在 Rhythmbox 中监听按键(比如说Ctrl+)W,并在发生这种情况时调用函数。如何在 Python 中做到这一点?

答案1

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

  1. 创建插件的文档
  2. API 文档
  3. 在 rhythmbox-devel 邮件列表上询问 ([电子邮件保护]
  4. 在 IRC 频道上提问(irc.gimp.net 上的 #rhythmbox)

答案2

以下是开始的基础:

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 中定义的信号,你可以将你的会话总线连接到 Player,而不是 Shell。不幸的是,API 相当复杂,这里不容易解释。仔细阅读文档,您很可能会找到所需内容。

相关内容