Как я могу слушать определенный сигнал в Rhythmbox?

Я хочу прослушать нажатие клавиши, скажем, Ctrl + W в Rhythmbox, и вызвать функцию, если это произойдет. Как я могу сделать это в Python?

2
задан 2 January 2011 в 15:10

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 довольно сложный и не так легко объяснить здесь. Хорошо покопайтесь в Документации , и вы, вероятно, найдете то, что вам нужно.

0
ответ дан 2 January 2011 в 15:10

Я предполагаю, что вы создаете какой-то плагин. Плагины могут быть написаны на C или Python. Я не знаю, как это сделать, но я знаю, где вы могли бы узнать эту информацию:

  1. Документация для создания плагинов .
  2. Документация по API .
  3. Запрос в списке рассылки rhythmbox-devel (rhythmbox-devel@lists.gnome.org)
  4. Запрос в IRC-канале (#rhythmbox на irc.gimp.net)
0
ответ дан 2 January 2011 в 15:10

Другие вопросы по тегам:

Похожие вопросы: