【问题标题】:Python Access Pidgin Data Structure by DbusDbus 的 Python 访问 Pidgin 数据结构
【发布时间】:2012-09-18 02:19:31
【问题描述】:

我最近开始用 Python 编程并为 Pidgin 制作脚本/插件,我需要访问 PurpleConversationUiOps 并使用 has_focus 字段,基于 Pidgin 文档中的一些示例,我做了这个:

    #!/usr/bin/env python
    import dbus, gobject
    from dbus.mainloop.glib import DBusGMainLoop

    def view(conv):
     if conv == 1: #if has focus
       print "Has Focus"

    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    bus = dbus.SessionBus()
    bus.add_signal_receiver(view,
                    dbus_interface="im.pidgin.purple.PurpleConversationUiOps",
                    signal_name="HasFocus")
    loop = gobject.MainLoop()
    loop.run()

他没有给出错误但我没有收到任何信号,那么我如何访问 has_focus 字段?

【问题讨论】:

    标签: python ubuntu plugins dbus pidgin


    【解决方案1】:

    我已经用 d-feet 检查了我的 Pidgin 2.10.0 并且只有一个接口,im.pidgin.purple.PurpleInterface。看来你要找的API是方法(不是信号)PurpleConversationHasFocus(int32 conv) -> int32

    要获得对话,请使用PurpleGetConversations -> Array of int32,或发送信号ConversationCreated(int32)

    $ dbus-send --print-reply --dest=im.pidgin.purple.PurpleService  /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.PurpleGetConversations
    method return sender=:1.165 -> dest=:1.172 reply_serial=2
       array [
          int32 22042
       ]
    $ dbus-send --print-reply --dest=im.pidgin.purple.PurpleService  /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.PurpleConversationHasFocus int32:22042
    method return sender=:1.165 -> dest=:1.174 reply_serial=2
       int32 0
    

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 1970-01-01
      • 2012-01-16
      • 2020-06-07
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多