我在尝试如何在pidgin中使用dbus
我的问题是,我不太确定怎么让它们互相连接。我需要以某种特定的方式安装pidgin,才能让dbus和它对接吗?如果不需要的话,pidgin的图形界面必须要运行着,才能让dbus使用它吗?
5 个回答
2
当你刚开始使用DBUS与Pidgin进行交互时,一个非常有用的工具是D-Feet。这个工具可以让你看到所有可以调用的方法,甚至可以直接在图形界面上执行这些方法。
4
import dbus
from dbus.mainloop.glib import DBusGMainLoop
main_loop = DBusGMainLoop()
session_bus = dbus.SessionBus(mainloop = main_loop)
obj = session_bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
status = purple.PurpleSavedstatusNew("", current)
purple.PurpleSavedstatusSetMessage(status, message)
purple.PurpleSavedstatusActivate(status)
然后你可以用这个紫色的对象来调用一些方法,像这样:
5
根据这个来源,你可以尝试以下方法:
#!/usr/bin/env python
def cb_func(account, rec, message):
#change message here somehow?
print message
import dbus, gobject
from dbus.mainloop.glib import DBusGMainLoop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_signal_receiver(cb_func,
dbus_interface="im.pidgin.purple.PurpleInterface",
signal_name="SendingImMsg")
loop = gobject.MainLoop()
loop.run()
可能你可以从这个线索开始入手。