簡體   English   中英

Dbus的Python Access Pidgin數據結構

[英]Python Access Pidgin Data Structure by Dbus

我最近開始使用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字段?

我已經用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM