我想在 Rhythmbox 中监听按键(比如说Ctrl+)W,并在发生这种情况时调用函数。如何在 Python 中做到这一点?
答案1
答案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 相当复杂,这里不容易解释。仔细阅读文档,您很可能会找到所需内容。