चिकना और GOBject 2 अलग सी पुस्तकालय हैं जहाँ से जीटीके + जीयूआई टूलकिट बनाया गया है (अन्य चीजों के साथ)।
चूंकि सी निम्न स्तर की भाषा है, इसलिए जीएलआईबी पाइथन (फ़ाइल इनपुट/आउटपुट, स्ट्रिंग मैनिपुलेशन, मेमोरी मैनेजमेंट, थ्रेडिंग इत्यादि) के साथ अंतर्निहित सुविधाओं के समान कई कार्यक्षमता प्रदान करता है।
चूंकि सी ऑब्जेक्ट उन्मुख भाषा नहीं है, इसलिए गोब्जेक्ट एक सी-आधारित ऑब्जेक्ट सिस्टम प्रदान करता है जिसमें गुण और विरासत शामिल है (फिर से, पहले से ही पायथन में बनाया गया है)। पायथन में, आप शायद ही कभी जीएलआईबी का उपयोग करते हैं (क्योंकि पाइथन में उस कार्यक्षमता में से अधिकांश कार्यक्षमता है) लेकिन गोब्जेक्ट जीएलआईबी पर निर्भर है।
सभी गोबेल-आधारित पुस्तकालयों को पाइथन जैसे अन्य भाषाओं में भाषा बाइंडिंग का समर्थन करने के लिए डिज़ाइन किया गया है।
आपके प्रश्न के बिंदु पर, गोब्जेक्ट एक कार्यक्रम प्रणाली प्रदान करता है जिसे "संकेत" कहा जाता है। GObject से व्युत्पन्न कोई भी वस्तु किसी ईवेंट की सूचनाओं को भेजने के लिए संकेतों को "उत्सर्जित" कर सकती है। MPDProtocolClient
python-mpdor
में कक्षा GObject से ली गई है और इस प्रकार यह सिग्नल उत्सर्जित कर सकती है। इन संकेतों के लिए अनुप्रयोग "कनेक्ट" फ़ंक्शन। एफ
उदाहरण के लिए, README इस उदाहरण दिखाता है:
import gobject
import mpdor
def notify(client, vol):
print "mpd volume is at ", vol + "%"
client = mpdor.client.Client()
client.connect("mixer-change", notify)
gobject.MainLoop().run()
इस मामले में, समारोह notify
नामित "mixer-change"
संकेत है कि समारोह जिसका अर्थ है करने के लिए "जुड़ा" है में किसी भी समय बुलाया जाएगा ग्राहक "का उत्सर्जन करता है "वह संकेत। gobject.MainLoop().run()
कॉल "main event loop" (मूल रूप से एक अनंत लूप) में प्रवेश करता है जो घटना-संचालित प्रोग्रामिंग में एक मानक अवधारणा है।
आपको शायद बहुत सारे गोब्जेक्ट/पायथन ट्यूटोरियल नहीं मिलेगा, हालांकि, यदि आप पाइथन/जीटीके + मूल बातें सीखते हैं तो आपको घटना लूप, सिग्नल, और अवधारणाओं की अवधारणाओं को समझने की संभावना होगी। संकेत कॉलबैक। (ऐसा लगता है कि पाइथन-एमपीडीओ जीटीके + 2 का उपयोग कर रहा है जो पीईजीटीके होगा क्योंकि नए जीटीके + 3 के विपरीत जो पीजीओजीजेक्ट है)।
शुभकामनाएं।
+1 बहुत अच्छा स्पष्टीकरण। – RanRag