मुझे अजगर और डीबीस के साथ समस्या है। मैंने डेवलपर दस्तावेज़ और विनिर्देशों की जांच की, लेकिन मुझे समझ में नहीं आता कि मुख्य लूप कैसे सेट अप करें। मैं अधिसूचना घटनाओं के लिए सुनना चाहता हूँ। देखेंपायथन और डी-बस: मुख्य लूप कैसे सेट करें?
http://dbus.freedesktop.org/doc/dbus-python/doc/
और
http://www.galago-project.org/specs/notification/0.9/index.html
मेरे उदाहरण स्क्रिप्ट:
import dbus
from dbus.mainloop.glib import DBusGMainLoop
class MessageListener:
def __init__(self):
DBusGMainLoop(set_as_default=True)
self.bus = dbus.SessionBus()
self.proxy = self.bus.get_object('org.freedesktop.Notifications',
'/org/freedesktop/Notifications')
self.proxy.connect_to_signal('NotificationClosed',
self.handle_notification)
def handle_notification(self, *args, **kwargs):
print args, kwargs
if __name__ == '__main__':
MessageListener()
DBusGMainLoop रन की तरह कोई और तरीकों है()। अगर मैं gobject से एक पाश का उपयोग करें और sourcecode बदलने के लिए:
import gobject
loop = gobject.MainLoop()
dbus.set_default_main_loop(loop)
...
loop.run()
मैं त्रुटि संदेश निम्नलिखित हो:
Traceback (most recent call last):
File "dbus_example.py", line 40, in <module>
MessageListener()
File "dbus_example.py", line 9, in __init__
dbus.set_default_main_loop(loop)
TypeError: A dbus.mainloop.NativeMainLoop instance is required
किसी भी विचार इसके बारे में क्या करना है? अग्रिम धन्यवाद। Phineas
बहुत बहुत धन्यवाद, यह अब काम करता है। मुख्य पाश का निर्माण बहुत स्पष्ट नहीं है, है ना? – phineas