Bunny Rabbit Asked: 2011-01-03 03:17:53 +0800 CST2011-01-03 03:17:53 +0800 CST 2011-01-03 03:17:53 +0800 CST 如何收听 Rhythmbox 中的特定信号? 772 Ctrl我想在 Rhythmbox 中听让我们说+的按键W,并在发生这种情况时调用函数。我怎样才能在 Python 中做到这一点? rhythmbox programming python 2 个回答 Voted Best Answer dv3500ea 2011-01-03T04:15:50+08:002011-01-03T04:15:50+08:00 我假设您正在创建某种插件。插件可以用 C 或 Python 编写。我不知道该怎么做,但我知道你可以在哪里找到这些信息: 创建插件的文档。 API 文档。 在节奏盒开发邮件列表上询问 ([email protected]) 在 IRC 频道上提问(irc.gimp.net 上的#rhythmbox) Stefano Palazzo 2011-01-03T04:28:19+08:002011-01-03T04:28:19+08:00 这是开始的基础: 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 相当复杂,在这里不容易解释。仔细翻阅文档,您可能会找到所需的内容。
我假设您正在创建某种插件。插件可以用 C 或 Python 编写。我不知道该怎么做,但我知道你可以在哪里找到这些信息:
这是开始的基础:
两个重要的部分是定义函数,查看 API 文档以了解它应该接受哪些参数,并将信号连接到它。API 再次列出了这些信号。
例如,如果您想捕获 RBPlayer 中定义的信号,您需要将 yoru 会话总线连接到 Player,而不是 Shell。不幸的是,API 相当复杂,在这里不容易解释。仔细翻阅文档,您可能会找到所需的内容。